Ubuntu logo

Packaging Guide

10. Использование chroot-окружений

Если вы пользуетесь одной из версий Ubuntu, но работаете над пакетами для другой версии, вы можете создать среду другой версии с помощью chroot.

Использование chroot позволит вам иметь в распоряжении полную файловую систему другого дистрибутива для удобства работы. Это позволяет избежать затрат, связанных с установкой виртуальной машины.

10.1. Создание chroot

Используйте команду debootstrap, чтобы создать новый chroot:

$ sudo debootstrap trusty trusty/

This will create a directory trusty and install a minimal trusty system into it.

If your version of debootstrap does not know about Trusty you can try upgrading to the version in backports.

После этого вы можете работать внутри chroot:

$ sudo chroot trusty

Где можно установить или удалить любой пакет, который вы хотите, без ущерба для основной системы.

Вы можете скопировать свои ключи GPG и SSH, а также конфигурацию Bazaar в chroot, чтобы получать доступ и подписывать пакеты непосредственно оттуда:

$ sudo mkdir trusty/home/<username>
$ sudo cp -r ~/.gnupg ~/.ssh ~/.bazaar trusty/home/<username>

Чтобы apt и другие программы не жаловались на отсутствующие локали, можно установить соответствующий языковой пакет:

$ apt-get install language-pack-en

Если вам нужно запускать программы, использующие X-сервер, вам нужно добавить в chroot директорию /tmp, для этого снаружи chroot запустите:

$ sudo mount -t none -o bind /tmp trusty/tmp
$ xhost +

Для некоторых программ, возможно, понадобится привязать /dev или /proc.

Более подробную информацию о chroot вы можете найти на нашей странице Debootstrap Chroot wiki page.

10.2. Альтернативы

SBuild — система, похожая на PBuilder, также позволяет создать окружение и произвести тестовую сборку. Она более похожа на то, что используется на Launchpad для сборки пакетов, но подготовка такого окружения занимает больше времени по сравнению с PBuilder. Смотрите the Security Team Build Environment wiki page для подробного объяснения.

Полные виртуальные машины могут быть полезны для упаковки и тестирования программ. TestDrive — это программа, позволяющая автоматизировать синхронизацию и запуск ежедневных ISO-образов, смотрите вики-страницу TestDrive, чтобы узнать больше.

Можно также настроить pbuilder так, чтобы он приостанавливался при обнаружении ошибки сборки. Скопируйте C10shell из /usr/share/doc/pbuilder/examples в каталог и используйте аргумент --hookdir=, чтобы указать на него.

Облачные компьютеры EC2 Amazon позволяют нанимать компьютер за несколько центов в час. Вы можете установить на них Ubuntu любой поддерживаемой версии и пакеты. Это полезно, когда вам надо скомпилировать много пакетов одновременно или преодолеть ограничения пропускной способности.