Что внутри RPM?
Что может быть внутри пакета RPM? Конечно же, файлы! Давайте разберёмся, какие именно это файлы и для чего предназначен каждый из них.
"Вскрытие" RPM-пакета будем проводить с помощью универсального менеджера Midnigth Commander (или Mortal Commander - как кому нравится). Для эксперимента выберите любой пакет(я взял pv-0.4.5-1.i386.rpm), но учтите, что лучше выбирать небольшой по размеру, чтобы mc быстрее с ним работал.
Итак, запустите mc, наведите курсор на имя пакета и нажмите "Enter": "войдите" в него так же, как в обычный каталог. В моем случае внутри оказалось два каталога и четыре файла:
/INFO dir
/usr dir
CONTENT.cpio file
HEADER file
INSTALL file
UPGRADE file
Зайдите в каталог /usr (тот, что в пакете). В нем будут подкаталоги /bin и /share. Здесь можно найти и файлы, и другие подкаталоги. Фактически, при установке пакета, дерево /usr будет перенесено в каталог /usr вашей файловой системы. Поэтому вы можете и без установки скопировать любой файл из пакета в произвольный каталог файловой системы. Удобно? Еще бы!
Теперь вернемся к файлам. Файл HEADER содержит заголовок пакета - информацию об имени программы, ее версии, разработчике, сборщике пакета, а также описание программы. Именно эту информацию мы получаем с помощью параметра -qi утилиты rpm.
Файлы INSTALL и UPGRADE являются сценариями и задают последовательность действий при установке или обновлении пакета соответственно.
Теперь выделите файл CONTENT.cpio и нажмите F3 - вы увидите оглавление с перечислением неких путей: файл с расширением CPIO является архивом, однако, в отличие от обыкновенных архивов, в нём указывается путь, куда будут записаны содержащиеся в нём файлы после извлечения. Причем путь указывается отдельно для каждого файла. Оглавление CONTENT.cpio выводится параметром –ql программы rpm.
Файл CONTENT.cpio можно скопировать в каталог файловой системы, а затем распаковать с помощью системной утилиты cpio. Данная операция равносильна установке пакета, поэтому, можно считать, что мы научились устанавливать пакеты "вручную", без использования rpm.
Без внимания остался только каталог /INFO. В нем содержится различная информация о пакете - от имени компьютера, на котором пакет собирался, до общего описания программы.