18.2.1 Создание пакетов, специфичных для конкретного дистрибутива

Один из путей, обходящих проблемы различия дистрибутивов Линукс - создавать пакеты для конкретного дистрибутива. Для того, чтобы пойти этим путем, разработчик вынужден собирать ПО в пакеты для каждого дистрибутива из тех, что он поддерживает.

Это составляет довольно значительный объем работы. Если это возможно, поместите все различия в макросы и используйте единственный spec-файл для всех сборок, чтобы уменьшить количество непроизводительного труда. Иногда, однако, сложность spec-файла при этом превышает некоторые разумные пределы, в этом случае проще создать разные spec-файлы, по одному на каждый поддерживаемый дистрибутив.

Один из путей, облегчающих создание вендор-зависимых пакетов - рассмотреть пакет, содержащий специфичную для дистрибутива конфигурацию RPM. Например, в Red Hat Linux конфигурация RPM определяется пакетом redhat-rpm-config.

Получив список файлов этого пакета, увидим, в каких файлах Red Hat определяет специфичные для Red Hat Linux макросы.

$ rpm -ql redhat-rpm-config

/usr/lib/rpm/redhat

/usr/lib/rpm/redhat/brp-compress

/usr/lib/rpm/redhat/brp-redhat

/usr/lib/rpm/redhat/brp-sparc64-linux

/usr/lib/rpm/redhat/brp-strip

/usr/lib/rpm/redhat/brp-strip-comment-note

/usr/lib/rpm/redhat/brp-strip-shared

/usr/lib/rpm/redhat/find-lang.sh

/usr/lib/rpm/redhat/find-provides

/usr/lib/rpm/redhat/find-requires

/usr/lib/rpm/redhat/macros

/usr/lib/rpm/redhat/perl.prov

/usr/lib/rpm/redhat/perl.req

/usr/lib/rpm/redhat/rpmrc

Эти файлы, например, /usr/lib/rpm/redhat/macros, демонстрируют отличия настроек Red Hat Linux от других дистрибутивов. Вооружившись знаниями о специфических настройках, разработчик с меньшими затратами сможет создавать портируемые rpm-пакеты.

Далее - Работа с автоматической генерацией зависимостей
Назад - Решение проблем сборки пакетов
Содержание