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.
Hinweis: Unbedingt darauf achten, dass noch genügend RAM für das Compilieren etc. vorhanden ist.
$ 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)