Чтение онлайн

на главную - закладки

Жанры

Основы программирования в Linux
Шрифт:

В примере задается параметр

Buildroot
, определяющий место установки пакета. Вы можете скопировать в ваши пакеты следующую строку:

Buildroot: %{_tmppath}/%{name}-%{version}-root

После того как параметр

Buildroot
задан, устанавливайте ваши приложения в каталог из параметра
Buildroot
. Можно использовать удобную переменную
$RPM_BUILD_ROOT
, которая задается для всех сценариев командной оболочки в файле spec.

После задания всех этих характеристик пакета далее нужно определить, как собирать пакет. Для этого есть четыре основные секции:

%prep
,
%build
,
%install
и
%clean
.

Судя по имени, секция

%prep
предназначена для подготовки сборки. В большинстве случаев вы можете выполнить приведенный далее макрос
%setup
с параметром
– q
для перевода его в режим без вывода сообщений:

%prep

%setup -q

Секция

%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" </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.

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" </dev/null

%files

%{_bindir}/myapp

%{_mandir}/myapp.1

Теперь вы готовы к формированию RPM-пакета.

Поделиться:
Популярные книги

Неофит

Листратов Валерий
3. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неофит

Вечный. Книга IV

Рокотов Алексей
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга IV

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Руководство по системной поведенченской психотерапии

Курпатов Андрей Владимирович
Научно-образовательная:
психотерапия и консультирование
5.00
рейтинг книги
Руководство по системной поведенченской психотерапии

Апокриф

Вайс Александр
10. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Апокриф

Наследник старого рода

Шелег Дмитрий Витальевич
1. Живой лёд
Фантастика:
фэнтези
8.19
рейтинг книги
Наследник старого рода

Черный Маг Императора 16

Герда Александр
16. Черный маг императора
Фантастика:
юмористическое фэнтези
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Черный Маг Императора 16

Товарищ "Чума" 5

lanpirot
5. Товарищ "Чума"
Фантастика:
городское фэнтези
попаданцы
альтернативная история
5.00
рейтинг книги
Товарищ Чума 5

Лекарь Империи 2

Карелин Сергей Витальевич
2. Лекарь Империи
Фантастика:
городское фэнтези
аниме
дорама
фэнтези
попаданцы
5.00
рейтинг книги
Лекарь Империи 2

Я снова не князь! Книга XVII

Дрейк Сириус
17. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я снова не князь! Книга XVII

Телохранитель Генсека. Том 3

Алмазный Петр
3. Медведев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Телохранитель Генсека. Том 3

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Бродяга

Первухин Андрей Евгеньевич
1. Бродяга
Фантастика:
попаданцы
5.40
рейтинг книги
Бродяга

Курс 1. Октябрь

Фокс Гарри
2. Маркатис
Фантастика:
аниме
фэнтези
сказочная фантастика
5.00
рейтинг книги
Курс 1. Октябрь