oio11: (Default)
[personal profile] oio11
Глава 6. Сборка пакета

....................

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
    
Это позволит вам подписывать создаваемые пакеты вашим секретным ключом GPG, размещённым в каталоге ~/.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
$ debsign foo_версия_архитектура.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

October 2025

S M T W T F S
   1234
567891011
12131415161718
19202122 232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 3rd, 2026 06:51 pm
Powered by Dreamwidth Studios