В этом примере при необходимости создаются каталоги для файлов, а затем устанавливаются исполняемый файл myapp и интерактивное справочное руководство myapp.1. Переменная окружения
$RPM_BUILD_ROOT
содержит местоположение
Buildroot
, заданное ранее. Макросы
%{_bindir}
и
%{_mandir}
замещаются текущим каталогом двоичных файлов и каталогом страниц интерактивного справочного руководства соответственно.
Примечание
Если вы пользуетесь сценарием configure для создания make-файла, все разнообразные каталоги в нем будут заданы должным образом. В большинстве случаев вам не придется задать все команды установки вручную, как. показано в предыдущем примере.
Задание
%clean
удаляет файлы, созданные командой
rpmbuild
. Например:
%clean
rm -rf $RPM_BUILD_ROOT
После описания построения пакета следует задать все файлы, которые будут устанавливаться. RPM-система очень строга на этот счет. Она и должна быть строгой для того, чтобы иметь возможность отследить должным образом каждый файл в каждом пакете. В секции
%files
перечисляются имена всех файлов, включаемых в пакет. В данном случае у нас только два файла предназначены для распространения в двоичном
пакете: исполняемый файл myapp и страница интерактивного справочного руководства myapp.1. Например:
%files
%{_bindir}/myapp
%{_mandir}/myapp.1
RPM-система может выполнять сценарий до и после установки вашего пакета. Например, если ваш пакет — процесс-демон, для его запуска, возможно, нужна корректировка сценариев установки системы. Сделайте это с помощью сценария
%post
. Далее приведен простой пример, отправляющий сообщение по электронной почте:
%post
mail root -s "myapp installed — please register" </dev/null
Поищите примеры в серверных RPM-файлах spec.
Далее приводится полный файл spec для вашего простого приложения.
#
# spec file for package myapp (Version 1.0)
#
Vendor: Wrox Press
Distribution: Any
Name: myapp
Version: 1.0
Release: 1
Packager: neil@provider.com
License: Copyright 2007 Wiley Publishing, Inc.
Group: Applications/Media
Provides: goodness
Requires: mysql >=3.23
Buildroot: %{_tmppath}/%{name}-%{version}-root
source: %{name}-%{version}.tar.gz
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.