Pbuilder et tmpfs peuvent être bons amis

Jul. 12, 2011

Ou comment accélérer de façon non négligeable les compiles de paquets sous Debian/Ubuntu.

Salut à tous.

Suite au dernier billet sur la mise en place d’une machine de compilation de paquets Debian, j’ai continué mes bidouilles et mes recherches sur ce système de compilation.

Et il m’est pris l’idée d’utiliser un tmpfs (stocké en ram) pour accélérer mes compilations.

Alors déjà, il faut une grosse quantité de mémoire vive, à savoir 4Go minimum, car il faut pouvoir y stocker les données temporaire de compilation, et laisser assez de mémoire vive pour le système.

Dans mon, cas ayant 16Go de mémoire vive, aucun problème :).

Pour mettre ça en place, c’est plutôt simple (toutes les actions sont à effectuer en root, donc sous Ubuntu, préfixez les commandes par sudo).

Déjà, créez le dossier /var/cache/pbuilder/build s’il n’est pas créé :

mkdir /var/cache/pbuilder/build

Ensuite, armez vous de votre éditeur texte préféré, et ajoutez la ligne suivante au fichier /etc/fstab :

tmpfs /var/cache/pbuilder/build tmpfs defaults,auto 0 0

Montez la partition :

mount /var/cache/pbuilder/build

Ensuite, dans votre fichier /root/.pbuilderrc, ajoutez la ligne suivante :

APTCACHEHARDLINK=no

Cette ligne évitera que des hardlinks soient créés entre le cache et l’environnement de compilation, au profit de liens symboliques, vu que les 2 dossiers sont maintenant sur des partitions différentes.

J’ai effectué un test de performance avec une compile complète OWFS amd64 et i386 (11 systèmes supportés, donc 22 compilations), et voici donc les résultats :

Comme vous pouvez le voir, les perfomances sont au rendez vous.

Bon bidouillage :).