2.1.2 Формат файла rpm

rpm-пакеты содержат некоторое количество служебной информации и файлы, которые должны быть установлены в систему. Файл пакета, таким образом, состоит из нескольких частей, в частности бинарного заголовка, в котором в жестко заданных полях в определенном формате хранится информация о пакете, и cpio-архива, представляющего собой дерево каталогов и файлов проекта.
Например, служебное поле NAME хранит имя пакета, а опциональное поле PRE - прединсталляционный скрипт, который будет выполнен до копирования файлов в систему.

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

Сигнатура следует за начальным идентификатором. Подобно любой цифровой подписи сигнатура позволяет оценить в последствии целостность пакета. С помощью сигнатуры нельзя понять, содержит ли пакет ошибки :), но можно установить, верный ли rpm-архив вы загрузили.
Сигнатура является результатом выполнения некоторой функции над хедером и нагрузкой. Это может быть криптофункция вроде PGP или хэш-функция, например дайджест MD5.

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

Нагрузка содержит файлы, которые реально используются в проекте. Когда отдана команда на установку пакета, эти файлы копируются в систему в нужные места. Все дерево каталогов и файлов пакета заархивировано и сжато gzip.

Для извлечения архива из пакета используется утилита rpm2cpio (описывается далее в этом разделе в главе "Другие RPM команды").

Далее - Бинарные rpm и rpm с исходным кодом
Назад - Введение в структуру файла пакета
Содержание