TIP Accélérez Portage
Un article de Gentoo Linux Wiki.
Sommaire |
[modifier] Introduction
Compiler un logiciel à partir des sources prends du temps. Un peu de bidouillage m'a permis de compiler xorg-x11 en plus ou moins 15 minutes sur un Athlon 1800+
[modifier] Quelle quantité de RAM sera utilisée?
300 Mb de RAM montée n'est pas suffisant pour compiler :
500 Mb de RAM montée est suffisant pour:
- GCC (sans aucun USE flags activés)
850 Mb de RAM montée est suffisant pour:
Il est possible de compiler KDE avec 350 Mb. Avec les grosses applications, survient aussi le problème de Inoeuds. Un Inoeud = Un fichier et les codes source comportent un grand nombre de fichiers. Pour celles-ci, il vous faudra donc augmenter le nombre d'Inoeuds.
[modifier] Mise en oeuvre
En tant que Root, exécutez ceci:
pour 50% de votre RAM:
mount -t tmpfs tmpfs /var/tmp/portage
pour à peu près 850 MB de votre RAM et un million d'Inoeuds:
mount -t tmpfs tmpfs -o size=850M,nr_inodes=1M /var/tmp/portage
Verifiez qu'elle est bien montée:
df -h | grep tmpfs
Vous pouvez aussi monter tmpfs au démarrage en ajoutant ceci dans votre /etc/fstab :
none /var/tmp/portage tmpfs size=1000M,nr_inodes=1M 0 0
et le monter avec:
mount -a
Vous pouvez bien sur en accroitre la taille selon votre swap.
[modifier] Tests
A vos marques! Prets! Emergez!
Utilisez genlop afin d'en verifier le gain de vitesse.
emerge genlop -n genlop -t xorg-x11 * x11-base/xorg-x11 Wed Apr 6 17:33:07 2005 >>> x11-base/xorg-x11-6.8.2-r1 merge time: 7 minutes and 9 seconds.
[modifier] Miniscript
Un petit script qui montera tmpfs pour vous. Allez à n'importe quel répertoire de binaires dans votre $PATH, tel que /usr/local/bin, et créez temerge avec votre $EDITOR.
| Fichier : temerge |
#!/bin/bash
MEMSIZE=850M
mounted=false
. /sbin/functions.sh
mounttmpfs() {
mount -t tmpfs tmpfs -o size=$MEMSIZE /var/tmp/portage
mounted="true"
}
compile() {
einfo "emerging ${*}"
emerge ${*}
}
unmount() {
ebegin "unmounting tmpfs"
umount -f /var/tmp/portage
eend $?
}
ebegin "Mounting $MEMSIZE of memory to /var/tmp/portage"
if [ -z "$(mount | grep /var/tmp/portage)" ]
then
mounttmpfs
else
eerror "tmpfs already mounted!"
exit 0
fi
eend $?
compile ${*}
if [ -n "$mounted" ]
then
unmount
fi
|
chmod u+x temerge et utilisez temerge en lieu et place de emerge pour installer les logiciels de portage. Utilisez emerge afin de rechercher et simuler.
Inbreed 17:31, 1 Jul 2005 (GMT) --Traduit par Mordred 22:15, 22 Dec 2005 (CET)
