Spec-файл может определять сборку более чем одного пакета. Этот тип дополнительных пакетов называется "субпакет" (subpackage). Субпакет имеет место для закрытия потребности в тех случаях, когда разработчик не хочет жестко ассоциировать один spec-файл с одним пакетом. Например, вы можете захотеть включить в один набор исходников пакет с исполняемым ПО и пакет с файлами разработки, или клиентское и серверное приложение. Разделение больших наборов документации на несколько субпакетов - также обычное дело.
В концепции субпакетов разработчику доступны:
- один spec-файл;
- один src.rpm;
- один набор команд сборки;
- несколько бинарных rpm.
В большинстве случаев субпакеты используют как средство разделения набора собранных файлов на несколько пакетов. Например, часто встречаются библиотеки разработки и заголовочные файлы, отделенные от главного пакета с приложением. Часто для этого требуется только использование нужной директивы и специальным образом организованная секция %files.
Для определения субпакета применяется директива %package:
%package sub_package_name |
%package -n new_sub_package_name
По умолчанию имя субпакета строится следующим образом: имя исходного пакета - дефис - имя субпакета из директивы %package. Например:
%package server |
Этот пример называет субпакет "server" и это реальный субпакет в пакете telnet. В данном случае бинарный пакет получит имя telnet-server.
Если есть причины (или нет желания) использовать стандартный синтаксис именования субпакета, доступна опция -n, с помощью которой можно задать полностью новое имя субпакета с использованием следующего:
%package -n new_sub_package_name |
Система RPM не станет прибавлять префикс к полностью новому имени субпакета.
Далее - Предоставление информации о субпакетах
Назад - Написание проверочных скриптов
Содержание