gblend-1
Accueil du site > Portage > La magie de Portage

La magie de Portage

Publié le mercredi 24 novembre 2004, mis a jour le samedi 16 décembre 2006, par Maxime Brunel

Cet article vous présente une façon de manipuler les informations venant du fichier /var/log/emerge.log avec l’outil genlop qui est, bien sur, indépendant de Portage. On peut trouver par exemple, le temps que mettra la compilation d’une application grâce à cet outil.

Introduction

Le fichier /var/log/emerge.log est bien connu pour la centralisation des informations sur les manipulations que vous faites avec emerge. Mais ce qui est moins connu, c’est ce que peut apporter ce fichier quand on le regarde de plus près.

Par exemple, quand vous lancez une mise à jour, vous ne savez pas combien de temps durera la compilation. Vous ne vous rappelez peut-être pas combien de temps à mis le paquet firefox pour emerger... et pourtant Portage, lui, le sait avec le fichier énoncé ci-dessus.

Vous pouvez l’analyser manuellement, mais ce travail est très fastidieux. Heureusement, un outil existe pour cette fonction, il se nomme genlop.

Installation

Avant de l’installer avec la commande habituelle, emerge, nous allons devoir le démasquer par le keyword pour utiliser une version notée instable par Gentoo, mais qui ne présente aucun danger et qui possède même des avantages, notamment dans les fonctionnalités.

# echo app-portage/genlop ~x86 >> /etc/portage/package.keywords

Et ensuite, il suffit de l’installer :

# emerge app-portage/genlop

Utilisation de genlop

Aprés avoir installé genlop, je vais décrire quelques utilisations de genlop très utiles :

Connaître le temps approximatif d’une mise à jour

# emerge -up world | genlop --pretend

[ affichage des paquets à mettre à jour ]

These are the pretended packages: (this may take a while; wait...)

* media-libs/tiff
* app-sci/stellarium
* app-arch/gzip
* dev-libs/libIDL
* net-www/mozilla-firefox
* sys-boot/lilo
* app-doc/abs-guide
* app-arch/unarj
* x11-base/xorg-x11
* app-emulation/wine

Estimated update time: 4 hours, 38 minutes.

Attention, genlop ne donne pas une estimation pour tous les paquets. Voici un exemple, où genlop le signale :

# emerge -up system | genlop --pretend
These are the pretended packages: (this may take a while; wait...)

[ebuild U ] app-arch/gzip-1.3.5-r3 [1.3.5-r2]
[ebuild U ] sys-apps/module-init-tools-3.1 [3.0-r2]

!!! Error: couldn't get previous merge of module-init-tools; skipping...
!!! Error: module-init-tools never merged; estimated time unknown.

Les temps donnés ne sont qu’une estimation et une moyenne, et peuvent ne pas refléter complètement la réalité, si vous utilisez la fonction CCACHE, ou de nouvelles fonctions...etc. Il y a donc un grand nombre de facteurs que que vous devrez prendre en compte.

Une autre option de genlop qui peut être très utile est —current. Elle vous donne le temps de fusionnement du paquet qui est en train de se compiler.

# genlop --current

Bien sur, si vous exécutez la commande, et que les processus de compilation n’existent pas, il vous renvoie :

!!! Error: no working merge found.

Répondre à cet article


Suivre la vie du site RSS 2.0 | Plan du site | Espace privé | SPIP | squelette