Вход/Регистрация
Основы программирования в 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
(ценные свойства). RPM-система также автоматически добавляет элемент
Provides
к имени пакета, в данном случае myapp. Параметры Provides полезны в случае множественных пакетов, предоставляющих одну и ту же функциональную возможность. Например, пакет Web-сервера Apache предоставляет средство webserver. Другие пакеты, например Thy, могут предоставлять то же средство. (Для облегчения работы с конфликтующими пакетами RPM-система позволяет задавать также информацию с помощью элементов Conflicts и Obsoletes.)

Наиболее важная сопутствующая информация определяется в параметрах

Requires
. Вы можете указать все пакеты, необходимые для функционирования вашего пакета. Например, Web-серверу требуется сетевой пакет и пакет безопасности. В нашем примере вы задаете необходимость СУРБД MySQL версии 3.23 или более свежей. Синтаксическая запись приведена далее:

Requires: mysql >= 3.23

Если вам нужна СУРБД MySQL любой версии, можно задать параметр следующим образом:

Requires: mysql

RPM-система не разрешит пользователям устанавливать пакеты, если не установлены пакеты, необходимые для их работы. (Правда, пользователи могут переопределить это поведение.)

RPM-система автоматически добавляет зависимые элементы, например /bin/sh для сценариев командной оболочки, интерпретатор Perl для сценариев на языке Perl и любые совместно используемые библиотеки (файлы с расширением so), которые вызывает ваше приложение. Каждая новая версия RPM-системы включает все новые средства для автоматической проверки зависимостей.

После задания требований необходимо определить исходные файлы, формирующие ваше приложение. Для большинства приложений можно просто скопировать следующую строку:

source: %{name}-%{version}.tar.gz

Синтаксическая запись

%{name}
ссылается на RPM-макрос, в данном случае имя пакета. Поскольку ранее вы задали имя myapp, команда
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

Секция

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

%build

make

  • Читать дальше
  • 1
  • ...
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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