19.2.6 Сборка RPM

Индекс

19.2.6 Сборка RPM

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

RPM включает в себя несколько подсистем, таких как popt для разбора опций командных строк. Каждая из этих подсистем нуждается в конфигурировании. БОльшая часть этого конфигурирования может быть выполнена скриптом конфигурации, который в свою очередь генерируется скриптом autogen.sh и утилитами autoconf/automake.

Скрипт autogen.sh - это shell-скрипт, который делает ряд проверок на предмет соответствия конкретным версиям нужных библиотек и инструментов. После проверки зависимостей стартовый скрипт вызывает сепаратные скрипты autogen.sh в каталогах beecrypt, libelf, popt и zlib. После выполнения всех процедур autogen.sh вызывает скрипт configure.

Чтобы отключить вызов configure используется опция командной строки --noconfigure.

Если используются версии инструментов, отличные от ожидаемых, потребуется редактирование скрипта autogen.sh. Кроме того, целевая система может содержать нужные библиотеки, расположенные по другим путям, поэтому адаптация скрипта под свою систему в целом является хорошей практикой.

Одним значимым ожиданием, на основе которого построен autogen.sh, есть ожидание того, что целевая платформа - это Unix-подобная система. Если это не так, следует понять, каким образом построить сценарии Makefile вручную. Ручная работа с Makefile может потребовать множества неуспешных попыток сборки. Устраняйте ошибки одну за другой и запускайте процесс вновь вплоть до успеха.

Если autogen.sh-подход срабатывает, для создания системно-специфичных Makefile-ов, компилирования RPM и установки потребуется стандартный набор команд:

$ ./configure

$ make

$ make install

Скрипт configure забирает на вход файлы Makefile.in и, используя их как шаблоны-заготовки, создает файлы Makefile, адаптированные для целевой системы. (Система automake стартует с файлов Makefile.am, создает файлы Makefile.in и в результате получает Makefile, адаптированные для целевой системы). Если все эти пути ведут к неустранимым ошибкам, можно скопировать Makefile.in в Makefile и затем редактировать Makefile до полной работоспособности на своей системе.

Если же никакой из подходов не срабатывает, можно попробовать вручную скопировать исполнимые файлы и скрипты из бинарных rpm-пакетов для соответствующей процессорной архитектуры по нужным путям.

Далее - Решение проблем
Назад - Инструменты сборки RPM
Содержание