ONErpm
- 1 year ago
- 0
- 0
RPM ( рекурсивный акроним RPM Package Manager — RPM — менеджер пакетов ; ранее раскрывался как Red Hat Package Manager — менеджер пакетов Red Hat ) — формат пакетов программного обеспечения , а также программа, созданная для управления этими пакетами, используемые в ряде Linux-дистрибутивов; является основным форматом пакетов в LSB .
Изначально разработанный компанией 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 имеет название, которое состоит из нескольких частей:
Собранный пакет обычно имеет такой формат названия:
<название>-<версия>-<выпуск>.<архитектура>.rpm
Например:
nano-0.98-2.i386.rpm
Иногда в пакет входят исходные коды. Такие пакеты не содержат информации об архитектуре, она заменяется на src . Например:
libgnomeuimm2.0-2.0.0-3.src.rpm
Библиотеки чаще всего распространяются в двух отдельных пакетах. Первый содержит собранный код, второй (обычно к нему добавляют -devel ) содержит заголовочные файлы и другие файлы, необходимые разработчикам. Необходимо следить за тем, чтобы версии этих двух пакетов совпадали, иначе библиотеки могут работать некорректно. Пакеты с расширением noarch.rpm не зависят от конкретной архитектуры компьютера. Обычно они содержат графику и тексты, используемые другими программами.
Для создания пакета нужен spec-файл . Это обычный текстовый файл, который имеет суффикс .spec и содержит в себе название пакета, версию, номер выпуска, инструкции по сборке и установке пакета и список изменений. При наличии spec-файла пакет создаётся командой rpmbuild.
Ниже приведён список некоторых наиболее известных дистрибутивов, основанных на RPM [ источник не указан 211 дней ] :
Есть несколько программ, которые позволяют автоматически разрешить зависимости при установке пакетов. Вот некоторые наиболее известные:
Графические интерфейсы для RPM — PackageKit и Synaptic .