Сборка пакетов в Debian. Изолированная сборка

Сборка пакетов в Debian

Базовый документ: Debian Packaging Tutorial (Lucas Nussbaum, version 0.8 – 2013-03-03).

Пакет: ar-архив с файлами debian-binary, control.tar.gz, data.tar.gz

Сборка пакета: исходный архив, .dsc-файл, debian-архив (3.0+) или patch (старше)

Команды apt-get build-dep, apt-get source и debcheckout; пакеты build-essential и devscripts.

Содержимое каталога debian: control, rules, patches/, watch, собственные сценарии, прочее. Устройство файла rules.

Работа с птчами и сериями патчей. Quilt. Вспомогательные сборочные подсистемы: debhelper, CDBS, dh (aka Debhelper 7)

Сборка: debuild/dpkg-buildpackage и pbuilder.

Изолированная сборка

Недостатки развёртывания сборочного окружения в базовой системе.

Требования к изолированной сборке:

ALT Linux hasher

Базовая ссылка: Wiki ALT Linux Team (в частности, статья Дмитрия Левина «hasher: технология безопасной сборки дистрибутива»)

Свойства: chroot, выделенные пользователи класса builder и rooter, кеширование неизменяемой части окружения.

Достоинства: максимально упрощённое использование при надёжной изоляции.

Специальные возможности: проброс/отключение сети, X11, каталогов /proc, /dev/pts и т. п.; формирование хранилища, пригодного к установке.

Команды hsh, hsh-rebuild, hsh-shell и hsh-run, hsh-install

Тонкости: заведение персональных выделенных пользователей с помощью hasher-useradd, использование tmpfs, удаление каталога со сборочным окружением (hsh --cleanup-only), (не)использование собственного хранилищя только что собранных пакетов (--without-staff), необходимость в локальной копии хранилищ (sisy[hus-mirror).

Работа с (плохо- или несобирающимися) .src.rpm непосредственно в hsh-shell. hsh --lazy-cleanup