Формат rpm: номенклатурный вопрос
В репозиториях Fedora (и остальных rpm-based дистрибутивов) можно обнаружить разные виды пакетов интересующего нас формата (об устройстве репозиториев мы также поговорим отдельно).
Во-первых, выделяются rpm-пакеты бинарные и они же, но с исходными текстами. Как явствет из названия, первые содержат прекомпилированные компоненты дистрибутивного пакета (ещё раз повторюсь, что в данном случае вовсе не тождественно пакетам авторским), как то:
- исполняемые бинарные файлы;
- возможно, библиотеки, необходимые для их функционирования;
- конфигурационные файлы (или, по крайней мере, их примеры);
- документацию.
В пакетах с исходниками представлены тарбаллы таковых, патчи, необходимые для адаптации пакетов к целевой системе, и разного рода служебная информация.
Распознать те и другие очень легко по их именам, образованным по определённым правилам, каковые мы рассмотрим на примере самого показательного пакета -- собственно
Имена бинарных rpm-пакетов образованы по следующей схеме:
rpm-4.7.1-6.fc12.x86_64.rpm
где rpm -- имя пакета, 4.7.1 -- номер ветки, версии и конкретного релиза пакета, 6 -- номер сборки для текущей версии данного дистрибутива, fc12 -- имя и версия такового (то есть -- Fedora Core версии 12), x86_64 -- архитектура, под которую пакет собирался.
Имя пакета с исходниками будет похожим:
rpm-4.7.1-6.fc12.src.rpm
за исключением добавочного суффикса src, символизирующего, что мы имеем дело именно с исходниками, а не бинарниками. И очевидно, что понятие архитектуры для исходных текстов смысла не имеет -- они (теоретически) должны собираться для любой из них.
Среди бинарных пакетов также можно найти такие, которые не привязаны к какой-либо архитектуре -- они опознаются по дополнительному суффиксу noarch. В их числе -- сценарии на интерпретируемых языках типа Perl, Puthon и так далее, шрифтовые пакеты, документация и так далее. Например, так будет выглядеть пакет для одной из гарнитур шрифтового семейства Dejav:
dejavu-sans-fonts-2.30-2.fc12.noarch.rpm
Выше уже говорилось, что бинарные rpm-пакеты могу содержать библиотеки функций, необходимых для их функционирования. Однако это -- скорее исключение: как и во всех UNIX-подобных системах, в rpm-based дистрибутивах существует тенденция собирать библиотеки как отдельные пакеты. При этом каждая библиотека, как правило, представлена в виде двух пакетов:
первый содержит собственно код библиотечных функций, необходимых в любом случае; например, работу пакета rpm обеспечивает библиотчный пакет
rpm-libs-4.7.1-6.fc12.x86_64.rpm
во второй же включаются заголовочные файлы, необходимые только при самостоятельной сборке пакетов -- в обыденной жизни без них можно обойтись:
rpm-devel-4.7.1-6.fc12.x86_64.rpm
Разобравшись с номенклатурой rpm-пакетов, можно перейти к вопросу их внутреннего устройства -- то есть к собственно формату.
Теги: fedora, rpm