Ubuntu logo

Packaging Guide

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

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

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

4.1. Создание chroot

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

$ sudo debootstrap trusty trusty/

Это создаст папку trusty и установит минимальный образ trusty в неё.

Если ваша версия debootstrap не определит Trusty, попробуйте обновиться до версии в 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.

На странице Debootstrap Chroot вики вы найдёте более подробную информацию о chroot-окружении.

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

SBuild – система, похожая на PBuilder, используемая для создания окружения, в котором выполняются тестовые сборки пакета. Она близка к той, которую использует Launchpad для сборки пакетов, но её установка несколько сложнее, чем PBuilder. Более полную информацию можно найти на викистранице Система Сборки Security Team.

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

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

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