RPM Package Manager
Типменеджер пакунків
АвториMarc Ewingd[1] і Erik W. Troand[1]
РозробникRed Hat
Операційна системаLinux
Мова програмуванняC
ЛіцензіяGNU General Public License
Репозиторійgithub.com/rpm-software-management/rpm
Вебсайтrpm.org

RPM (англ. Red Hat Package Manager — менеджер пакунків Red Hat[2] або RPM Package Manager — RPM — менеджер пакунків) — позначає дві речі: формат пакунків програмного забезпечення і програму, створену для управління цими пакунками. Програма дозволяє встановлювати, видаляти і оновлювати програмне забезпечення. Формат RPM заснований на форматі, розробленому LSB.

Спочатку розроблений компанією Red Hat для Red Hat Linux, RPM став використовуватися в багатьох дистрибутивах GNU/Linux і був портований на інші операційні системи: Novell NetWare (з версії 6.5 SP3), IBM AIX (з версії 5) та інші.

Сьогодні «RPM Package Manager» використовується як рекурсивний акронім.

Проект RPM 4 (rpm.org [Архівовано 15 червня 2018 у Wayback Machine.]) розвивається компанією Red Hat і використовується в таких дистрибутивах, як RHEL, Fedora, SUSE Linux, openSUSE, Mageia, ALT Linux і MeeGo. RPM 4 не слід плутати з проектом RPM 5 (rpm5.org), який ніяк не пов'язаний з RPM 4 і з 2007 року розвивається паралельно іншою командою розробників. З дистрибутивів, що перейшли на RPM 5, можна відмітити Unity Linux, OpenEmbedded, ArkLinux і Mandriva Linux.

Назви пакунків

[ред. | ред. код]

Кожен пакунок RPM має назву, яка складається з декількох частин:

Зібраний пакунок зазвичай має такий формат назви:

<назва>-<версія>-<реліз>.<архітектура>.rpm

Наприклад:

nano-0.98-2.i386.rpm

Іноді в пакунок входять початкові коди. Такі пакунки не містять інформації про архітектуру, вона замінюється на src. Наприклад:

libgnomeuimm2.0-2.0.0-3.src.rpm

Бібліотеки найчастіше розповсюджуються в двох окремих пакунках. Перший містить зібраний код, другий (зазвичай до нього додають -devel) містить заголовні файли і інші файли, необхідні розробникам. Необхідно стежити за тим, щоб версії цих двох пакунків збігалися, інакше бібліотеки можуть працювати некоректно. Пакунки з розширенням noarch.rpm не залежать від конкретної архітектури комп'ютера. Зазвичай вони містять графіку і тексти, що використовують інші програми.

Структура пакунків RPM

[ред. | ред. код]

Пакунок записується у двійковому форматі і складається з чотирьох розділів:[2]

Переваги і недоліки RPM

[ред. | ред. код]

Переваги RPM над іншими засобами управління і установкою програмного забезпечення:

Основні недоліки

[ред. | ред. код]

Створення пакунку

[ред. | ред. код]

Для створення пакунку потрібний spec-файл. Це звичайний текстовой файл, має суфікс .spec і містить в собі назву пакунку, версію, номер реліза, інструкції по збірці і установці пакунку і список змін. За наявності spec-файла пакунок створюється командою rpmbuild

Дуже короткий курс молодого бійця можна знайти тут; з англомовних керівництв можна рекомендувати хоч і старе, але багато в чому (особливо по частині макросів) актуальне Maximum RPM [Архівовано 16 травня 2008 у Wayback Machine.] і чернетка його оновленої версії — RPM Guide.

Приклади використання

[ред. | ред. код]

маніпуляції з пакунками

[ред. | ред. код]

запити до бази RPM

[ред. | ред. код]

База даних RPM

[ред. | ред. код]

База даних RPM представляє собою набір баз Berkeley DB, який ведеться в теці /var/lib/rpm. В них ведеться інформаця про те, які пакет встановлювались, оновлювались, їх залежності, які файли були встановлені операційну систему, їх метадані при встановленні тощо.

При встановленні або видалені програм, rpm перевіряє наявність необхідних залежностей, причому перевіряє не наявність файлів на файловій системі, а наявність саме в цій базі. Залежності іноді собою представляють не тільки файл, а абстрактну сутність, бібліотеку яка

В набір утілит rpm входить функціонал аудиту, який дозволяє перевірити наявність або відсутність файлів які були встановлені в пакеті, їх контрольну суму а також встановлені права.

База даних не має вбудованих механізмів журналювання, тому може постраждати від переривання процесу встановлення/видалення пакетів, помилок, нестачі вільного місця на файловій системі. Це призводить до неконсистентного стану бази, в такому випадку її можна відновити за допомогою rpm --rebuilddb.

При повній втраті бази, її можна відновити з наявних пакунків, з них можна отримати інформацію якою база повинна бути наповнена, в емулювати встановлення без перезапису файлів, а лише записи в базу rpm -ivh --justdb за списком пакунків.

Дистрибутиви Linux

[ред. | ред. код]

Список деяких найвідоміших дистрибутивів Linux, заснованих на RPM:

Виноски

[ред. | ред. код]
  1. а б в http://rpm5.org/roadmap.php
  2. а б Maximum RPM: Taking the Red Hat Package Manager to the Limit. Архів оригіналу за 5 липня 2008. Процитовано 17 липня 2008.

Посилання

[ред. | ред. код]

Дивись також

[ред. | ред. код]