L'idée est toute simple : éviter au maximum les accès disque pendant la compilation. Et cela se fait très simplement : il suffit de mettre le répertoire de compilation en RAM !

Portage utilisant le répertoire /var/tmp/portage pour travailler, la ligne de commande se résume donc à ceci :

mount -t tmpfs none /var/tmp/portage

Et voici un petit script qui permet d'automatiser tout ça :)

#!/bin/sh
 
# synchronisation de portage
emerge --sync
 
# téléchargement des packages
emerge --update --deep --newuse --fetchonly world
 
# répertoire temporaire en ram
mount -t tmpfs none /var/tmp/portage
 
# mise à jour des packages
emerge --update --deep --newuse world
 
# enlève le répertoire de la ram
umount /var/tmp/portage
 
# suppression des packages plus utilisés
emerge --depclean --deep

Cette astuce suppose qu'il y a assez de RAM pour le restant du système. Il vaut donc mieux éviter de lancer le script ci-dessus en ayant déjà de gros programmes ouverts (genre NetBeans avec un serveur Glassfish) !

Merci à Michel Ganguin pour l'information :)