Секция %build собирает ваше приложение. В большинстве случаев можно применять простую команду make. Например:

%build

make

Это один из способов, которым RPM-система использует уже проделанную вами работу по созданию make-файла.

Секция %install устанавливает ваше приложение, интерактивное справочное руководство и любые файлы поддержки. Вы можете применить RPM-макрос %makeinstall, который вызывает задание install make-файла. Тем не менее, в данном случае установим файлы вручную, чтобы продемонстрировать дополнительные RPM-макросы:

%install

mkdir -р $RPM_BUILD_ROOT%{_bindir}

mkdir -p $RPM_BUILD_ROOT%{_mandir}

install -m755 myapp $RPM_BUILD_ROOT%{_bindir}/myapp

install -m755 myapp.1 $RPM_BUILD_ROOT%{_mandir}/myapp.1

В этом примере при необходимости создаются каталоги для файлов, а затем устанавливаются исполняемый файл 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"

Поищите примеры в серверных 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.

Authors: Neil Matthew and Richard Stones

%prep

%setup -q

%build

make

%install

mkdir -p $RPM_BUILD_ROOT%{bindir}

mkdir -p $RPM_BUILD_ROOT%{_mandir}

install -m755 myapp $RPM_BUILD_ROOT%{_bindir}/myapp

install -m755 myapp.1 $RPM_BUILD_ROOT%{_mandir}/myapp.1

%clean

rm -rf $RPM_BUILD_ROOT

%post

mail root -s "myapp installed — please register"

%files

%{_bindir}/myapp

%{_mandir}/myapp.1

Перейти на страницу:

Похожие книги