Ubuntu logo

Developer

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

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

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

Создание chroot

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

$ sudo debootstrap oneiric oneiric/

Это позволит создать каталог oneiric и установит в него минимальную систему oneiric.

Если ваша версия debootstrap не знает об oneiric, вы можете попробовать обновление до версии backports.

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

$ sudo chroot oneiric

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

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

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

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

$ apt-get install language-pack-en

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

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

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

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

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

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 любой поддерживаемой версии и пакеты. Это полезно, когда вам надо скомпилировать много пакетов одновременно или преодолеть ограничения пропускной способности.