pBuilder wird von den Debian und Ubuntu Maintainern für das Erstellen von Paketen empfohlen. In diesem Artikel wird gezeigt, wie die Zeit für die Erstellung eines Paketes mit Hilfe von tmpfs verringert werden kann.
Das tmpfs Dateisystem ist ein Dateisystem, welches komplett im RAM liegt. Durch diese Eigenschaft sind die Zugriffszeiten üblicherweise wesentlich kürzer als bei Festplatten. Soll nun der Erstellungsprozess eines Paketes beschleunigt werden, bietet es sich an, dass eigentliche build-Verzeichnis als tmpfs einzuhängen.
Im folgenden Beispiel wird das Dateisystem mit einer Größe von 2 GByte eingehängt. Die Größe sollte der vorhandenen Hardware und der von den Paketen benötigten Größe angepasst werden.
$ sudo mount -t tmpfs -o size=2G none /var/cache/pbuilder/build
Es ist natürlich auch möglich das tmpfs permanent einzubinden. Dazu muss
folgende Zeile in der Datei /etc/fstab
ergänzt werden.
tmpfs /var/cache/pbuilder/build tmpfs nosuid,size=2G 0 0
Wurde es in die fstab
eingetragen kann es entweder mit dem folgenden
Befehl eingehängt werden oder steht nach dem nächsten Neustart zur
Verfügung.
$ sudo mount -a
Wird jetzt ein Build-Prozess mit pBuilder ausgeführt, kann es zu folgender Fehlermeldung kommen.
ln: failed to create hard link ...
Diese Fehlermeldung ist auf die Art und Weise zurückzuführen, wie
pBuilder den Paketcache verwaltet. Wird eine neue Build-Umgebung
erstellt, werden alle Pakete aus dem Hauptcache in den Umgebungscache
per Hard-Links eingebunden. Dies ist jedoch nicht über
Dateisystemgrenzen hinweg möglich. Daher sollte die Datei
~/.pbuilderrc
um die folgende Zeile ergänzt werden. Sie bewirkt,
dass die Pakete nicht per Hard-Links bereitgestellt sondern kopiert
werden.
APTCACHEHARDLINK=no
Links
- Webseite: pBuilder User's Manual (englisch)