Des fois, comme par miracle, une box avec plein de cycles cpu inutilisés vous tombe sur les bras, elle est déja rackée et idle gentiment. Bah, pourquoi pas lui faire builder des ports en continu ?
Pour ca quelques détails :
/usr/ports
et /usr/obj
(utiliser un /usr/obj
d'1Go en mfs est une mauvaise idée, il finira par être plein)/usr/ports/infrastructure/db/hosts-`arch -s`
avec le hostname de la machine (ou plusieurs box si on est immensément riche/chanceux). On devra pouvoir accéder aux boxes via clef ssh sans passphrase à partir de la machine maitre, et évidemment elles doivent partager /usr/ports
par nfs.SUDO=/usr/bin/sudo -E USE_SYSTRACE=Yes CDIAGFLAGS=-Wall WARNINGS=Yes PLIST_DB=/usr/ports/plistdb WRKOBJDIR=/usr/obj/ports
chmod -R g+w /usr/ports
et chgrp -R wsrc /usr/ports
)screen (what else) mkdir -p /usr/ports/logs/`arch -s` # on crée le répertoire de logs cd /usr/ports ./infrastructure/build/dpb 2>&1 | tee bulkbuild.log
Et voilaaa.. reste plus qu'a attendre (10j pour un xserve g4 ppc, 1j pour un quad-core jackytuné) … On peut suivre l'avancement avec ls -1 /usr/ports/logs/`arch -s` | wc -l. dpb va tout d'abord faire une liste de tout les ports avec leurs dépendances, puis distribuer les compilations via ssh sur les différentes machines.
Et évidemment a la fin les packages sont dans /usr/ports/packages/`arch -s`/
.. reste plus qu'a configurer ftpd. Et nettoyer /usr/obj
. Et désinstaller les 1200 packages qui ont été installés au passage pour builder tout ca. Hint: rm -Rf /usr/local /var/db/pkg
pour les bourrins, cd /var/db/pkg && pkg_delete `ls -1`
pour ceux qui sont plus propres. Ca permet de voir si des ports laissent des trucs derrière eux quand on les désinstalle..
Si on ne veut pas utiliser dpb (faut dire que c'est trop simple), la commande suivante devrait faire pareil:
cd /usr/ports make package BULK=Yes BATCH=Yes REPORT_PROBLEM=true 2>&1 | /usr/ports/infrastructure/build/portslogger /usr/ports/logs/`arch -s`
thx ajacoutot pour les conseils au passage..