Ubuntu logo

Packaging Guide

10. Usando o chroot

Se você está executando uma versão do Ubuntu mas os pacotes que está trabalhando são de outras versões você pode criar um ambiente da outra versão com um chroot.

Um chroot lhe permite ter um sistema de arquivos completo a partir de outra distribuição, no qual se pode trabalhar normalmente. Isto evita a sobrecarga de uma máquina virtual inteira.

10.1. Criando um chroot

Use o comando debootstrap para criar um novo chroot:

$ sudo debootstrap saucy saucy/

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

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

Você pode então trabalhar dentro do chroot:

$ sudo chroot saucy

Onde você pode instalar ou remover qualquer pacote que desejar sem afetar seu sistema principal.

Você pode querer copiar suas chaves GPG/SSH e configuração do Bazaar para dentro do chroot, então você pode acessar e assinar pacotes diretamente:

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

Para impedir que o apt e outros programas reclamem de falta de localizações, você deve instalar o pacote de linguagem relevante para você:

$ apt-get install language-pack-en

Se você quer executar programas X será necessário vincular o diretório /tmp com o chroot, de fora do chroot execute:

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

Alguns programas podem necessitar que os diretórios /dev ou /proc estejam vinculados com o chroot.

Para mais informações sobre chroots veja o nosso Debootstrap Chroot wiki page.

10.2. Alternativas

SBuild é um sistema parecido com o PBuilder, que serve para a criação de um ambiente para rodar os testes de criação de pacotes. Ele se assemelha com o usado pelo Lauchpad para a construção de pacotes mas requer mais ajustes se comparado ao PBuilder. Veja the Security Team Build Environment wiki page para uma explicação detalhada.

Máquinas virtuais completas podem ser úteis para empacotamento e programas de testes. TestDrive é um programa para automatizar a sincronização e rodar imagens ISO diárias, veja the TestDrive wiki page para mais informações.

Você também pode configurar o pbuilder para pausar quando ele vem através de uma falha de construção. Copie C10shell de /usr/share/doc/pbuilder/examples para dentro do diretório e use o argumento --hookdir= para apontá-lo.

EC2 cloud computers da Amazon lhe permite contratar um computador pagando alguns pouco centavos de dólar por hora, nela se pode configurar máquinas Ubuntu de qualquer versão suportada e pacote. Isto é util quando se quer compilar muitos pacotes ao mesmo tempo ou para superar restrições de banda.