Пакет pbuilder
Mar. 19th, 2013 08:40 pmГлава 6. Сборка пакета
....................
6.4. Пакет
В чистой среде сборки (chroot) для проверки пакетных зависимостей очень полезен пакет
Давайте настроим пакет
Это позволит вам подписывать создаваемые пакеты вашим секретным ключом GPG, размещённым в каталоге
Для начальной инициализации локальной системы chroot пакета
Подписи GPG для файлов
Последняя версия команды lintian может быть вызвана в окружении
Возможно, вам потребуется обновить ваши пакеты из ветви
....................
6.4. Пакет pbuilder
В чистой среде сборки (chroot) для проверки пакетных зависимостей очень полезен пакет pbuilder [68]. Он поможет убедиться в чистоте сборки под управлением auto-builder из sid для различных архитектур и избежать опасной ошибки FTBFS (ошибка сборки из исходного кода), которая всегда относится к категории RC (критична для данного выпуска) [69].Давайте настроим пакет
pbuilder следующим образом:- дадим пользователю право записи в каталог
/var/cache/pbuilder/result - создадим каталог для размещения сценариев, например,
, доступный пользователю для записи./var/cache/pbuilder/hooks - добавим в файл
~/.pbuilderrcили в/etc/pbuilderrcследующие строки:AUTO_DEBSIGN=${AUTO_DEBSIGN:-yes} HOOKDIR=/var/cache/pbuilder/hooks
~/.gnupg/.Для начальной инициализации локальной системы chroot пакета
pbuilder выполним:$ sudo pbuilder createЕсли у вас имеется готовый пакет исходного кода, то в каталоге, где расположены файлы
foo.orig.tar.gz, foo.debian.tar.gz и foo.dsc, для обновления локальной системы chroot пакета pbuilder и сборки соответствующих двоичных пакетов выполните следующие команды:
$ sudo pbuilder --update
$ sudo pbuilder --build foo_версия.dsc
Свежесобранные пакеты без подписи GPG будут помещены в каталог /var/cache/pbuilder/result/, их владельцем будет обычный пользователь (не суперпользователь).Подписи GPG для файлов
.dsc и .changes можно сгенерировать следующим образом:$ cd /var/cache/pbuilder/result/ $ debsignЕсли у вас есть обновлённое древо исходного кода, но нет собранных пакетов с исходным кодом, выполните в каталоге, где размещён подкаталогfoo_версия.dsc $ debsignfoo_версия_архитектура.changes
debian, другие команды:$ sudo pbuilder --update $ pdebuildЕсли вы собираете пакеты Debian только для себя, то можете пропустить подписывание GPG для файла
.dsc и .changes с помощью:$ AUTO_DEBSIGN=no pdebuildВы можете войти внутрь окружения chroot и настроить его командой
pbuilder --login --save-after-login. Изменения будут сохранены, когда вы покинете оболочку, нажав ^D (Control-D).Последняя версия команды lintian может быть вызвана в окружении
chroot, используя сценарий /var/cache/pbuilder/hooks//B90lintian, настроенный следующим образом [70]:
#!/bin/sh
set -e
install_packages() {
apt-get -y --force-yes install "$@"
}
install_packages lintian
echo "+++ lintian output +++"
su -c "lintian -i -I --show-overrides /tmp/buildd/*.changes" - pbuilder
# use this version if you don't want lintian to fail the build
#su -c "lintian -i -I --show-overrides /tmp/buildd/*.changes; :" - pbuilder
echo "+++ end of lintian output +++"
Для правильной сборки пакета для sid вам потребуется самое свежее окружение этой ветви, однако миграция на sid всей системы может быть нежелательна. Пакет pbuilder поможет вам в этой ситуации.Возможно, вам потребуется обновить ваши пакеты из ветви
stable их версиями из архивов stable-proposed-updates, stable/updates и других [71]. В таких случаях утверждения «Я использовал окружение sid» недостаточно, если обновление не было проведено своевременно. Пакет pbuilder поможет вам получить доступ к окружению практически любого производного от Debian дистрибутива той же архитектуры.Смотрите http://www.netfort.gr.jp/~dancer/software/pbuilder.html, pdebuild(1), pbuilderrc(5) и pbuilder(8). ............
http://www.debian.org/doc/manuals/maint-guide/build.ru.html
pbuilder update --distribution squeeze --override-config
https://wiki.ubuntu.com/PbuilderHowto