Zenwalk
Приобщение к Linux

Алексей Федорчук

2008-06-25

назад | к началу | вперед

Сборка и установка

По завершении заполнения ZENBUILD можно заняться и собственно сборкой пакета, для чего вспоминаем о сценарии buildpkg, которому принадлежит главная роль в этом процессе. Если не спешить и действовать последовательно, то начать следует с запуска этого скрипта без опций и аргументов. Результатом будет создание скрипта build-$pkgname.sh, каковой можно просмотреть на предмет общего образования.

Дальнейшие действия потребут, во-первых, использования опций сценария buildpkg, во-вторых, прав суперпользователя. Получив оные посредством su, запускаем команду

$ buildpkg -x

которая пересоздаст файл build-$pkgname.sh и запустит его на исполнение. Результатом чего будет:

  • скачивание архива исходников, если его нет в текущем каталоге (а его можно скачать и поместить туда заблаговременно, руками), с последующей его распаковковкой;
  • сборка исполняемого бинарника, man-страниц и тому подобных сопутствующих компонентов;
  • создание в текущем каталоге (напоминаю, что мы всё это время находились и находимся в каталоге $pkgname, в нашем примере — flwm) подкаталогов ./pkg и ./src; первый содержит собранные компоненты пакета, второй — архив исходников и подкаталог с результатами его распаковки;
  • главные копоненты собранного пакета (как и ранее, рассматриваем их на примере пакета flwm), которые и будут устанавливаться или распространяться:
    • flwm-1.02-i486-1.1.tgz — собственно собранный пакет;
    • flwm-1.02-i486-1.1.md5 — его контрольная сумма;
    • flwm-1.02-i486-1.1.dep — список обязательных зависимостей (в нашем примере он включает единственный пакет, библиотеку fltk);
    • build-flwm-1.02-i486-1.1.log — «протокол» всех выполненных при сборке действий;
    • flwm-1.02-i486-1.1.src — вопреки названию, вовсе не исходники пакета, а список из трех строк
      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), избавиться также и от них.

назад | к началу | вперед