Формат rpm

В репозиториях Fedora можно обнаружить разные виды пакетов интересующего нас формата.

Во-первых, выделяются rpm-пакеты бинарные и они же, но с исходными текстами. Как явствует из названия, первые содержат прекомпилированные компоненты дистрибутивного пакета, как то:

  • исполняемые бинарные файлы;
  • возможно, библиотеки, необходимые для их функционирования;
  • конфигурационные файлы (или, по крайней мере, их примеры);
  • документацию.

В пакетах с исходниками представлены тарбаллы таковых, патчи, необходимые для адаптации пакетов к целевой системе, и разного рода служебная информация. В настоящей книге речи о них не будет.

Имена бинарных rpm-пакетов образованы по следующей схеме:

rpm-4.7.1-6.fc12.x86_64.rpm

где rpm -- имя пакета, 4.7.1 -- номер ветки, версии и конкретного релиза пакета, 6 -- номер сборки для текущей версии данного дистрибутива, fc12 -- имя и версия такового (то есть -- Fedora Core версии 12), x86_64 -- архитектура, под которую пакет собирался.

Некоторые пакеты, например, разного рода сценарии,  шрифтовые пакеты, документация, не привязаны к какой-либо архитектуре. Они опознаются по дополнительному суффиксу noarch. Например, так будет выглядеть пакет для одной из гарнитур шрифтового семейства Dejav:

dejavu-sans-fonts-2.30-2.fc12.noarch.rpm

Бинарные rpm-пакеты могу содержать библиотеки функций, необходимых для их функционирования. Однако это -- скорее исключение: обычно библиотеки собираются как отдельные пакеты. При этом каждая библиотека, как правило, представлена в виде двух пакетов. Первый содержит собственно код библиотечных функций, необходимых в любом случае; например, работу пакета rpm обеспечивает библиотечный пакет

rpm-libs-4.7.1-6.fc12.x86_64.rpm

Во второй же включаются заголовочные файлы, необходимые только при самостоятельной сборке пакетов:

rpm-devel-4.7.1-6.fc12.x86_64.rpm

Любой пакет формата rpm включает в себя два компонента. Первый -- это набор скомпилированных файлов, таких, как исполняемые бинарники и библиотеки, сопровождаемых необходимыми конфигами, документацией и т.д., готовый к инкорпорацию в файловую иерархию системы.

Второй -- метаинформация, то есть составленное по определённым правилам описание. Оно включает имя пакета, номер версии и сборки, сведения о разработчике и его мастер-сайте, список файлов, их положение в файловой иерархии, список зависимостей. Всё это вместе позволяет контролировать целостность пакета, отслеживать зависимости, обеспечивать выполнение собственно процедуры инсталляции, и так далее.

Компоненты rpm-пакета запаковывается в архив cpio (информацию об этой утилите можно найти здесь), подвергнутый компрессии. Ранее, вплоть до Fedora версии 11 включительно, это делалось посредством утилиты gzip (о ней см. здесь). Начиная с 12-й версии Fedora rpm-пакты сжимаются по алгоритму LZMA, обеспечивающему много большую степень компрессии — правда, ценой времени, на неё затрачиваемого (кое-что на эту тему можно найти здесь). Что для пользователя, впрочем, неудобств не доставит — распаковка lzma-файлов, как это ни парадоксально, осуществляется практически с той же скоростью, что и gzip. А вот скачивание их, разумеется, происходит много быстрее.


Главная
Содержание

. .