Gentoo : Utilisation des portages
Contents
1 Introduction
Le système de portage Gentoo est une excellente ressource (en terme de logiciels) quand il est utilisé correctement. En revanche, une utilisation incorrecte peut conduire à un système lourd, avec des paquets non-identifiables, et des fichiers ne pouvant être mis à jour. Ce guide va donc permettre à l'utilisateur de gérer correctement les portages Gentoo pour disposer d'un meilleur système.
2 Installer des paquets
Tout d'abord, qu'entendons-nous par "Emerger" ? La description de la commande emerge (disponible en anglais ici), indique que emerge est le programme en ligne de commande qui sert d'interface au système Portage. C'est cette commande qui permet l'installation de paquets sur le système.
Cette installation comprend (ces étapes sont entièrement automatisées) :
- la recherche des dépendances du paquet considéré
- l'installation et/ou la mise à jour des dépendances si nécessaire
- l'installation du paquet considéré
Après avoir "émergé" un paquet, ce paquet est intégré au système qui peut l'utiliser directement.
3 L'arbre Portage
Portage possède une grande base de données des paquets qu'il peut installer. On appelle cette base l'arbre Portage (portage tree). Cet arbre est conservé sur le disque dur, généralement dans le répertoire /usr/portage/ Afin de pouvoir profiter des derniers paquets en date, il est nécessaire de maintenir l'arbre à jour en le synchronisant avec l'arbre officiel Gentoo, qui est mis à jour plusieurs centaines de fois par jour et conservé sur des serveurs prévus à cet effet. Cette opération se fait très simplement sur un système Gentoo connecté à Internet en tapant
# emerge --sync
Il est inutile et déconseillé de mettre à jour l'arbre Portage plus d'une fois par jour.
4 Choisir les bons mirroirs
Pour mettre à jour son arbre ou obtenir les sources des paquets à installer, Portage doit télécharger des fichiers sur un de ses serveurs. Il existe de nombreux mirroirs contenant ces fichiers, aussi il vaut mieux en choisir un qui soit le plus rapide pour sa zone géographique. Ce choix peut se faire automatiquement grace au programme mirrorselect.
Pour installer mirrorselect:
emerge mirrorselect
Une fois l'installation terminée, pour choisir les 4 meilleurs mirroirs de téléchargement des sources:
mirrorselect -D -s4 -t5
Vous pouvez éventuellement préciser l'option -D pour une évaluation plus précise des performances des mirroirs, mais l'opération prendra plus de temps. Le fichier /etc/make.conf est mis à jour automatiquement pour prendre en compte les mirroirs choisis.
En lancant mirrorselect -ir, vous pouvez également choisir la zone géographique des serveurs à contacter pour synchroniser l'arbre Portage. Toutefois les mirroirs français sont souvent peu performants, le mieux est donc de laisser l'option par défaut (SYNC="rsync://rsync.gentoo.org/gentoo-portage" dans le fichier /etc/make.conf)
5 ACCEPT_KEYWORDS
La fonction "emerge" permet de gérer très facilement l'installation des paquets stables et instables (version plus récente du même logiciel mais insuffisament testée). Une méthode simple (voire simpliste) pour installer un paquet instable (prenons vlc comme exemple) pour une architecture x86 serait:
ACCEPT_KEYWORDS="~x86" emerge vlc
Malheureusement cette méthode simple ne permet d'installer le paquet instable (vlc) uniquement de manière temporaire. Lors de la prochaine mise à jour du système la commande emerge -u world cherchera à remplacer la version instable du paquet par sa version stable. Une méthode plus propre est d'indiquer dans le fichier /etc/portage/package.keywords que nous voulons utiliser la version instable :
echo media-video/vlc >> /etc/portage/package.keywords
Ainsi à chaque fois que l'on voudra émerger vlc (lors d'une mise à jour par exemple) la commande ACCEPT_KEYWORDS="~x86" sera sous-entendu.
6 Paquets masqués
Diverses situation peuvent nous amener à masquer (ou démasquer) certains paquets. De la même manière que précédemment il faut utiliser le fichier /etc/portage/package.mask pour le faire.
echo x11-base/xfree >> /etc/portage/package.mask
Et pour démasquer un paquet masqué il faut bien entendu faire
echo media-video/realone >> /etc/portage/package.unmask
7 Variable USE
La meilleure façon d'affecter des options de compilation pour les paquets qui nous intéresse est d'affecter à chaque paquet (au fur et à mesure de leur installation) une ligne dans le fichier /etc/portage/package.use comme suit
echo net-p2p/bittorrent -X >> /etc/portage/package.use
8 Maintenance des paquets
Lorsque vous désirez mettre à jour votre système avec la commande 'emerge -u world', il est possible que le portage vous propose remplacer une application par une version plus ancienne.
9 A propos du fichier 'world'
Premièrement, une petite explication de ce qu'est le fichier 'world'. Le fichier 'world' recense tous les paquets que l'utilisateur souhaite pouvoir mettre à jour automatiquement avec Portage (avec la commande emerge -u world). Par exemple, en lancant
emerge gnome
Portage enregistre le paquet correspondant (ici gnome-base/gnome) dans le fichier 'world' - uniquement gnome, pas ses dépendances. C'est pourquoi, lorsque vous lancez emerge -u world, seuls les paquets du fichier world sont mis-à-jour, pas les dépendances. Pour mettre-à-jour également les dépendances, utilisez l'option --deep ou -D en abrégé.
Si vous perdez votre fichier 'world', Portage ne saura plus les paquets que vous souhaitez mettre à jour, ce qui est en général considéré comme problématique.
Pour essayer de récupérer votre fichier 'world', lancez
regenworld
Le fichier world réside dans /var/lib/portage/world. Vous pouvez vérifier son contenu mais ne l'éditez pas à la main, sinon Portage pourrait se comporter erratiquement.
Jetez également un oeil à ce thread qui donne des instructions pour récuperer son fichier 'world' si regenworld ne fonctionne pas.
10 Mise à jour des logiciels installés
En utilisant cette méthode, vous ferez en sorte que la commande 'emerge -u world' fasse son travail correctement, et vous aurez une machine parfaitement configurée.
emerge -uDavt world
C'est la meilleure façon de mettre à jour votre systeme Gentoo.
-u pour upgrade (mise à jour vers les paquets les plus récents)
-D pour deep (mise à jour des dépendances)
-a pour ask (affiche la liste des paquets à mettre à jour et demande avant de compiler)
-v pour verbose (affiche le maximum d'informations, par exemple les USE flags utilisés pour chaque paquet)
-t pour tree (affiche les paquets sous forme d'arbre de dépendances).
Je recommande l'essai du script ecatmur's Cruft ou du plus récent script 'findcruft' de hepta_sean pour garder votre système net et sans bavures !