Что внутри 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. В нем содержится различная информация о пакете - от имени компьютера, на котором пакет собирался, до общего описания программы.