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