Параметр Group
Distribution важен, если вы создаете пакет для одного дистрибутива Linux, например, Red Hat или SUSE Linux.Неплохо добавить в ваш файл spec комментарии. Как и сценарии командной оболочки, и make-файлы, команда rpmbuild
#. Например:# Это строка комментария.
Для того чтобы помочь пользователям решить, нужно ли им устанавливать ваш пакет, предоставьте секции Summary
%description (обратите внимание на несогласованность RPM-синтаксиса, применяющего знак процента перед обозначением секции описания). Например, свой пакет вы можете описать следующим образом:Summary: Trivial application
%description
MyApp Trivial Application
A trivial application used to demonstrate development tools.
This version pretends it requires MySQL at or above 3.23.
Authors: Neil Matthew and Richard Stones
Секция %description
Файл spec может содержать сопутствующую информацию и о том, какие возможности предоставляет ваш пакет, и о том, от чего он зависит. (Вы также можете определить, от чего зависит пакет исходных файлов, например, указать специальные заголовочные файлы, необходимые для компиляции.)
Параметр Provides
Provides: goodness
В примере утверждается, что пакет предоставляет вымышленную функциональную возможность, именуемую goodness
Provides к имени пакета, в данном случае myapp. Параметры Provides полезны в случае множественных пакетов, предоставляющих одну и ту же функциональную возможность. Например, пакет Web-сервера Apache предоставляет средство webserver. Другие пакеты, например Thy, могут предоставлять то же средство. (Для облегчения работы с конфликтующими пакетами RPM-система позволяет задавать также информацию с помощью элементов Conflicts и Obsoletes.)Наиболее важная сопутствующая информация определяется в параметрах Requires
Requires: mysql >= 3.23
Если вам нужна СУРБД MySQL любой версии, можно задать параметр следующим образом:
Requires: mysql
RPM-система не разрешит пользователям устанавливать пакеты, если не установлены пакеты, необходимые для их работы. (Правда, пользователи могут переопределить это поведение.)
RPM-система автоматически добавляет зависимые элементы, например /bin/sh для сценариев командной оболочки, интерпретатор Perl для сценариев на языке Perl и любые совместно используемые библиотеки (файлы с расширением so), которые вызывает ваше приложение. Каждая новая версия RPM-системы включает все новые средства для автоматической проверки зависимостей.
После задания требований необходимо определить исходные файлы, формирующие ваше приложение. Для большинства приложений можно просто скопировать следующую строку:
source: %{name}-%{version}.tar.gz
Синтаксическая запись %{name}
rpmbuild заменит %{name} на myapp и аналогично заменит %{version} на 1.0, для того чтобы использовать для построения файл с именем myapp-1.0.tar.gz. Искать этот файл она будет в каталоге SOURCES, описанном ранее.В примере задается параметр Buildroot
Buildroot: %{_tmppath}/%{name}-%{version}-root
После того как параметр Buildroot
Buildroot. Можно использовать удобную переменную $RPM_BUILD_ROOT, которая задается для всех сценариев командной оболочки в файле spec.После задания всех этих характеристик пакета далее нужно определить, как собирать пакет. Для этого есть четыре основные секции: %prep
%build, %install и %clean.Судя по имени, секция %prep
%setup с параметром -q для перевода его в режим без вывода сообщений:%prep
%setup -q