Макрокоманда | Описание |
---|---|
%description | Полное описание пакета |
%prep | Подготовка архива. Здесь задаются команды для извлечения исходного текста программы и его распаковки, дополнительная подготовка исходного текста. После макрокоманды %prep задаются обычные команды shell |
%setup | Макрокоманда извлечения файлов из архивов. Опция –n позволяет указать каталог, в котором будет создаваться новый пакет. Обычно распаковывается архив, расположенный в каталоге SOURCES, в каталог BUILD |
%build | Макрокоманда компилирования. Обычно здесь запускается программа make с необходимыми параметрами |
%files | Задает список файлов, входящих в состав пакета. При указании имен файлов должен быть указан полный, а не относительный путь. Для указания полного пути можно использовать переменную окружения $RPM_BUILD_ROOT. Необходимые файлы уже должны быть помещены в каталог BUILD. Этого можно достичь с помощью макрокоманды %setup или с помощью макрокоманды %pre (см. ниже) |
%config список | Задает список файлов, которые будут помещены в каталог /etc |
%doc список | Задает список файлов, которые будут помещены в каталог /usr/doc/[package]–[ver]–[release] |
%install | Этап установки программного обеспечения. Здесь нужно записать команды, которые будут устанавливать файлы, входящие в состав пакета. Удобнее использовать команду install которую я использовал в листинге 19.1 |
%pre | Действия, которые будут выполнены до инсталляции пакета |
%post | Действия, которые будут выполнены после инсталляции пакета |
%preun | Действия, которые будут выполнены перед удалением пакета |
%postun | Действия, которые будут выполнены после удаления пакета |
%clean | Удаление дерева BUILD. Используется вместо опции — clean программы rpm. Обычно содержит одну команду: rm –rf $RPM_BUILD_ROOT |
Нужно сделать небольшое замечание относительно макрокоманд %config и %doc. В этом случае список задается не так, как в макрокоманде %files. Если после макрокоманды %files можно было просто указать по одному файлу в каждой строке, то в макрокоманде %doc каждому файлу (или каждому списку) должна предшествовать команда %doc. Например:
%doc README TODO Changes
%doc Install
а не
%doc
README TODO
Changes Install
Еще раз отмечу, что наличие всех макрокоманд в файле спецификаций не является обязательным.
При создании пакета мы использовали опцию –bb программы rpm. При указании этой опции создается только двоичный RPM-пакет, если вы хотите создать также пакет, содержащий исходный текст программы, используйте опцию –ba. Созданный пакет помещается в каталог SRPMS и будет иметь имя port-1.0-99.src.rpm. To есть вместо названия архитектуры будет указано, что данный пакет содержит исходный текст программы. Для создания такого пакета в каталоге SOURCES должны находиться исходные тексты программы.
Для полноты картины осталось рассмотреть опции менеджера rpm, которые используются для создания пакетов (см. табл. 19.35).
Опции менеджера пакетов rpm Таблица 19.35