Ubuntu logo

Packaging Guide

4. Utilisation des environnements Chroots

Si vous utilisez une version d’Ubuntu, mais que vous travaillez sur les paquets pour une autre version, vous pouvez créer l’environnement de l’autre version avec un chroot.

Un environnement chroot vous permet d’avoir un système de fichiers complet d’une autre distribution avec lequel vous pouvez travailler tout à fait normalement. Il évite la surcharge engendrée par l’exécution d’une machine virtuelle complète.

4.1. Créer un environnement Chroot

Utilisez la commande debootstrap pour créer un nouvel environnement 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.

Vous pouvez alors travailler dans l’environnement chroot:

$ sudo chroot trusty

Où vous pouvez installer ou désinstaller le paquet que vous souhaitez sans affecter votre système principal.

Vous devriez copier vos clés GPG/ssh et votre configuration Bazaar dans l’environnement chroot de manière à accéder aux paquets et les signer directement:

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

Pour empêcher apt et d’autres programmes de se plaindre de l’absence d’informations linguistiques, vous pouvez installer les paquets linguistiques adéquats:

$ apt-get install language-pack-en

Si vous voulez exécuter des programmes X, vous devez lier le répertoire /tmp dans le chroot, en dehors de chroot, exécutez:

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

Certains programmes peuvent nécessiter que vous liez /dev ou /proc.

For more information on chroots see our Debootstrap Chroot wiki page.

4.2. Alternatives

SBuild is a system similar to PBuilder for creating an environment to run test package builds in. It closer matches that used by Launchpad for building packages but takes some more setup compared to PBuilder. See the Security Team Build Environment wiki page for a full explanation.

Full virtual machines can be useful for packaging and testing programs. TestDrive is a program to automate syncing and running daily ISO images, see the TestDrive wiki page for more information.

Vous pouvez également configurer pbuilder pour marquer un arrêt lorsqu’il rencontre un échec de compilation. Copiez C10shell depuis /usr/share/doc/pbuilder/examples dans un répertoire et utilisez l’argument --hookdir= pour désigner ce dernier.

Amazon’s EC2 cloud computers allow you to hire a computer paying a few US cents per hour, you can set up Ubuntu machines of any supported version and package on those. This is useful when you want to compile many packages at the same time or to overcome bandwidth restraints.