2008-06-25
По завершении заполнения ZENBUILD можно заняться и собственно сборкой пакета, для чего вспоминаем о сценарии buildpkg, которому принадлежит главная роль в этом процессе. Если не спешить и действовать последовательно, то начать следует с запуска этого скрипта без опций и аргументов. Результатом будет создание скрипта build-$pkgname.sh, каковой можно просмотреть на предмет общего образования.
Дальнейшие действия потребут, во-первых, использования опций сценария buildpkg, во-вторых, прав суперпользователя. Получив оные посредством su, запускаем команду
$ buildpkg -x
которая пересоздаст файл build-$pkgname.sh и запустит его на исполнение. Результатом чего будет:
ZENBUILD build-flwm.sh http://flwm.sourceforge.net/flwm-1.02.tgzсодержание которых вполне прозрачно.
Подкаталоги ./pkg и ./src нужны нам только для изучения и проверки правильности выполненных действий в случае получения ошибок, так что теперь их вполне можно удалить. Делается это командой
$ buildpkg -c
после которой в каталоге — «сборочном цехе» остаются компоненты, нужные в дальнейшей жизни:
$ ls -1 . ZENBUILD build-flwm-1.02-i486-1.1.log build-flwm.sh flwm-1.02-i486-1.1.dep flwm-1.02-i486-1.1.md5 flwm-1.02-i486-1.1.src flwm-1.02-i486-1.1.tgz
и изначальный архив исходников — flwm-1.02.tgz.
При уверенности в правильности сборки её можно совместить с избавлением от отходов жизнедеятельности, что достигается командой
$ buildpkg -X
После этого остаётся лишь завершающий штрих — собственно установка пакета, выполняемая традиционным образом:
$ installpkg flwm-1.02-i486-1.1.tgz
Результатом чего будет не только установка пакета, но и фиксация его в базе данных — в виде файла в соответствующем каталоге:
/var/log/packages/flwm-1.02-i486-1.1
и в виде подкаталога в /usr/src:
/usr/src/flwm-1.02/
содержащего файлы ZENBUILD и build-flwm.sh.
Следствием чего будет лёгкость удаления пакета при необходимости. В отличие от пакета, собранного «в лоб», для удаления которого потребовалось бы сохранение каталога с деревом исходников и команда типа
make deinstall
(да и то, только если цель deinstall предусмотрена разработчиком), наш пакет может быть удалён штатными средствами — командой
/sbin/removepkg flwm
А файл /usr/src/flwm-1.02/ZENBUILD позволит отследить его зависимости и, если с ними не связано никаких более пакетов (а с библиотекой fltk в нашей системе не связано ничего, кроме flwm), избавиться также и от них.