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