Remove ads
Из Википедии, свободной энциклопедии
RPM (рекурсивный акроним RPM Package Manager — RPM — менеджер пакетов; ранее раскрывался как Red Hat Package Manager — менеджер пакетов Red Hat) — формат пакетов программного обеспечения, а также программа, созданная для управления этими пакетами, используемые в ряде Linux-дистрибутивов; является основным форматом пакетов в LSB.
RPM | |||
---|---|---|---|
Тип | пакетный менеджер[вд] и система управления пакетами | ||
Авторы | Марк Юинг[вд][1], Erik W. Troan[вд][1] и Red Hat | ||
Разработчик | Panu Matilainen[вд] | ||
Написана на | Си | ||
Операционные системы | GNU/Linux и Unix-подобная операционная система | ||
Первый выпуск | 1997[1] | ||
Последняя версия | |||
Репозиторий | github.com/rpm-software-… | ||
| |||
Лицензия | GNU GPL 2[3] и GNU GPL | ||
Сайт | rpm.org (англ.) |
Изначально разработанный компанией Red Hat для Red Hat Linux, RPM стал использоваться во многих дистрибутивах Linux и был портирован на другие операционные системы: Novell NetWare (с версии 6.5 SP3), IBM AIX (с версии 5) и прочие.
Для хранения файлов в формате RPM используется архивный контейнер cpio, с использованием сжатия утилитой gzip. В более поздних версиях может быть использован архиватор star и сжатие с помощью bzip2, LZMA или XZ. Начиная с версии RPM 5.0 возможно использование архиватора XAR.
База данных RPM ведётся в каталоге /var/lib/rpm
. Она состоит из одиночной базы данных (packages), в которой хранится вся информация о пакетах, и из множества маленьких баз (__db.001
, __db.002
и т. д.), которые служат для индексации и содержат в себе сведения о том, какие файлы менялись и создавались при установке и удалении пакетов.
Если база данных окажется повреждена (что может произойти, если процесс установки или удаления был «убит» или закончилось место на разделе), то её можно восстановить, введя команду rpm --rebuilddb
.
Если база была уничтожена — восстановить при помощи rpm -ivh --justdb
по списку пакетов, заранее полученному командой rpm -qa | sort
. Возможны полуэвристические методы восстановления базы по списку файлов в пакетах репозитория, из которого была установлена система, но такие способы не рекомендуются.
Каждый RPM-пакет имеет название, которое состоит из нескольких частей:
mdv
(Mandriva Linux) или fc4
(Fedora Core 4);Собранный пакет обычно имеет следующий формат названия:
<название>-<версия>-<выпуск>.<архитектура>.rpm
Например:
nano-0.98-2.i386.rpm
Иногда в пакет входят исходные коды. Такие пакеты не содержат информации об архитектуре, и её обозначение заменяется на src
. Например:
libgnomeuimm2.0-2.0.0-3.src.rpm
Библиотеки чаще всего распространяются в двух отдельных пакетах. Первый содержит собранный код, второй (обычно к нему добавляют -devel
) содержит заголовочные и другие файлы, необходимые разработчикам. Важно следить за тем, чтобы версии этих двух пакетов совпадали, иначе библиотеки могут работать некорректно. Пакеты с расширением noarch.rpm
не зависят от конкретной архитектуры компьютера, а также содержат графику и тексты, используемые другими программами.
Для создания пакета нужен spec-файл. Это обычный текстовый файл, который имеет суффикс .spec
и содержит в себе название пакета, версию, номер выпуска, инструкции по сборке и установке пакета и список изменений. При наличии spec-файла пакет создаётся командой rpmbuild
.
rpm -Uhv package.rpm
— при наличии пакета package
произойдёт его обновление, а при отсутствии — установка.rpm -qa --queryformat '%010{SIZE}\t%{NAME}-%{VERSION}-%{RELEASE}\n'
— вывод списка всех установленных пакетов и их размеров.rpm -q --queryformat %{DISTRIBUTION} package.rpm
— название дистрибутива, в котором установлен пакет (опция -q
для установленного в систему пакета, опция -qp
для неустановленного).rpm -qa | grep xx
— список пакетов, где встречается сочетание «xx».rpm -q --whatprovides fullpathtofile
— название пакета, которому принадлежит файл fullpathtofile
.Ниже приведён список некоторых наиболее известных дистрибутивов, основанных на RPM[источник не указан 541 день]:
Есть несколько программ, которые позволяют автоматически разрешить зависимости при установке пакетов. Вот некоторые наиболее известные:
Графические интерфейсы для RPM — PackageKit и Synaptic.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.