Ubuntu logo

Packaging Guide

5. Chroots benutzen

Wenn Sie eine Version von Ubuntu benutzen, aber an Paketen für andere Versionen arbeiten, können Sie eine Umgebung dieser Version mit einer Chroot erzeugen.

Eine Chroot erlaubt Ihnen ein Dateisystem einer anderen Distribution zu haben in dem man nahezu normal arbeiten kann. Dadurch vermeidet man den Overhead des Laufens einer vollen virtuellen Maschine.

5.1. Eine Chroot-Umgebung anlegen

Benutzen Sie das Kommando debootstrap um eine neue Chroot zu erzeugen:

$ sudo debootstrap trusty trusty/

Dies erstellt ein Verzeichnis trusty und installiert darin ein minimales Trusty-System.

Wenn Ihre Version von debootstrap Trusty nicht kennt, können Sie versuchen die Version in backports zu upgraden.

Sie können dann in der Chroot arbeiten:

$ sudo chroot trusty

Wo Sie alle Pakete installieren oder löschen können ohne Ihr Hauptsystem zu berühren.

Vielleicht möchten Sie auch Ihre GPG/ssh-Schlüssel und Bazaarkonfiguration in das Chroot kopieren, um so einfacher auf Pakete zugreifen und sie signieren zu können:

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

Damit apt und andere Programme sich nicht mehr über fehlende Locales beschweren, kann man die relevanten Language Packs installieren:

$ apt-get install language-pack-en

Um X-Window Programme in der Chroot Umgebung nutzen zu können, muss das /tmp Verzeichnis in die Umgebung gebunden werden. Dies geht außerhalb des Chroot mit folgendem Kommando:

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

Für einige Programme kann es nötig sein die Verzeichnisse /dev und /proc in das Chroot zu binden.

Für weitere Informationen über chroots schauen Sie unsere Debootstrap Chroot Wikiseite. an.

5.2. Alternativen

SBuild ist ein System ähnlich PBuilder um eine Umgebung zu erstellen in der Testpaket-Builds laufen gelassen werden können. Es ähnelt eher dem System welches von Launchpad genutzt wird um Pakete zu erstellen aber benötigt mehr Einrichtung als PBuilder. Schauen Sie die Security Team Build Environment Wikiseite für eine vollständige Erklärung an.

Vollständige virtuelle Maschinen können zur Paketierung und Testen von Programmen nützlich sein. TestDrive ist ein Programm um die Synchronisation und starten von Daily ISO-Abbildern zu betreiben. Schauen Sie die TestDrive Wikiseite für weitere Informationen an.

Sie können pbuilder auch so konfigurieren, dass er anhält, wenn er ein Problem findet. Kopieren Sie C10shell von /usr/share/doc/pbuilder/examples in ein Verzeichnis und benutzen Sie das --hookdir= Argument um darauf zu verweisen.

Amazons EC2 Cloudrechner ermöglichen es einen Rechner für ein paar US-Cents pro Stunde zu mieten. Man kann Ubuntu Rechner jeder unterstützten Version einrichten und auf diesen paketieren. Dies ist nützlich wenn man mehrere Pakete gleichzeitig paketieren möchte oder Bandbreiteneinschränkungen überwinden möchte.