TIP Accélérer la recherche dans Portage
Un article de Gentoo Linux Wiki.
|
Terminaux / Shells • CD Live • X • Portage • Système • Systèmes de fichier • Autres |
Sommaire |
[modifier] Introduction
Lors d'une recherche parmis les paquets disponibles, 'emerge' doit parcourir en profondeur l'ensemble du répertoire /usr/portage. Ces nombreux accès au disque-dur ont pour effet de rendre l'opération particulièrement lente et pénible à la longue. Pour rendre la recherche plus rapide et agréable, la solution la plus courante est d'utiliser un index de recherche. La création d'un index demande un peu de temps, mais permet ensuite d'accélérer sensiblement l'accès aux donnés indexées (comme c'est le cas pour les bases de données, par exemple). Le paquet 'esearch' apporte justement les outils permettant de créer et d'interroger un tel index, afin de faciliter la recherche parmis les ebuilds.
[modifier] Comment faire ?
Il faut tout d'abord installer le paquet 'esearch'.
emerge esearch
eupdatedb
cela prend un certain temps l'hors de la première utilisation. ( 30 secondes sur un Linux P4 2.6.19-gentoo-r5, i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux )
Lancez eupdatedb aussi souvent que vous utilisez emerge sync pour garder à jour l'index d'esearch
[modifier] Alternative à emerge sync
esync
cela permet de lancer les deux commandes emerge sync et eupdatedb
Ensuite utilisez
esearch foo à la place de emerge -s foo
et
esearch -S foo à la place de emerge -S foo
[modifier] Résultat
Esearch est un outil qui vous fera gagner du temps à la recherche dans portage... pour vous convaincre voici quelques chiffres.
( Testé sur un Pentium4 3ghz, 2go ram )
# time esearch portage real 0m0.139s user 0m0.116s sys 0m0.012s
# time emerge -s portage real 0m1.245s user 0m1.056s sys 0m0.164s
# time esearch -S portage real 0m0.171s user 0m0.148s sys 0m0.020s
# time emerge -S portage real 0m24.229s user 0m21.869s sys 0m2.204s
[modifier] A retenir
- esync, pour une synchronisation de l'arbre de portage et une mise à jour de l'index d'esearch
- esearch foo, pour une recherche par nom
- esearch -S foo, pour une recherche par description.
