======Portage =======


==== Le système ====



Portage est le gestionnaire de paquets de Gentoo et de ses dérivés. Il gère les mises à jour, l'installation de nouvelles applications ou leur suppression au même titre que rpm ou apt-get pour Fedora et de Debian (entre autres).



Sauf que...



Portage est plus qu'un gestionnaire comme rpm et apt-get, car les packages utilisés par Portage sont constitués de code-source au lieu de contenir des fichiers binaires précompilés. Il est le centre nerveux de tout un système qui utilise le code-source pour compiler des applications selon les paramètres spécifiés par l'utilisateur. 



=== L'arbre de Portage ===



Contrairement à la plupart des autres gestionnaires, il n'utilise pas des dépôts, mais des fichiers installés sur le disque dur qui contiennent des instructions pour le téléchargement du code-source et la compilation des applications. Ces fichiers sont classées dans une arborescence, l'arbre de Portage. On peut le trouver dans /usr/portage/. Par exemple, les fichiers nécéssaires pour installer Gimp se trouvent dans le dossier /usr/portage/media-gfx/gimp.



[Illustration portage-gimp.png]



Comme on peut le voir ci-dessus, le dossier consacré à Gimp contient plusieurs fichiers :

-le dossier Files contient des fichiers comme les patches

-ChangeLog contient le liste des changements apportés aux ebuilds

-Manifest contient les checksums des packages 

-Metadata.xml contient une description sommaire du package

Puis, il y a les ebuild :

-gimp-2.2.16.ebuild

-gimp-2.2.17.ebuild

-gimp-2.3.19.ebuild

-gimp-2.4.0_rc1.ebuild

-gimp-2.4.0_rc2.ebuild

-gimp-9999.ebuild



Comme on peut le voir, chaque ebuild correspond à une version différente de Gimp. En effet, portage offre la possibilité d'installer une version spécifique d'une application, en autant que l'ebuild se trouve dans Portage. Ces fichier contiennent des informations comme la liste des dépendances, les informations de licence, les instructions de compilation, les mots-clé pour les différentes architectures et les USE FLAGS qui peuvent être activés. Ces derniers servent a passer des instructions particulières au système lors de la compilation pour activer certaines fonctionnalités. Dans le cas de Gimp, le flag jpeg activera la compilations des modules nécessaires au support de ce format d'image par Gimp.



Pour rendre l'activation de ces Flags plus facile, Portage utilise des fichiers de configuration tels que package.use, mais surtout, make.conf.



==== Fichiers de configuration ====



make.conf



Ce fichier se trouve dans le dossier /etc/ et contient la liste des paramètres utilisés par Portage. On y retrouve les informations reliées à l'architecture de la machine, le matériel, les fonctionnalités de Portage que l'on souhaite activer, les langues à utiliser pour les applications lorsque plusieurs langues sont offertes, les options pour la commande make, etc.



[exemple de make.conf]







/etc/portage/



Ces fichiers servent à peaufiner la configuration de Portage en indiquant des paquets que l'on veut installer, éviter d'installer ou encore compiler avec des instructions particulières.



Syntaxe générale

<,>,=,~[catégorie/nom du package-version]

exemple :

>=media-gfx/gimp-print-5.0.0_rc1



package.mask

Paquets qu'on ne veut pas installer



package.unmask

Paquets qu'on veut installer



Attention, il est généralement plus prudent de masquer un paquet que de le démasquer!



package.use

USE FLAGS pour des packages particuliers, ce fichier a préseance sur le make.conf pour les use flags.

exemple : media-gfx/gimp mng wmf





===== emerge =====



emerge -sync

emerge [app]

emerge -unmerge (-C)

sets (world, system)

emerge -uDN 

emerge [options] --pretend

emerge -depclean

emerge -buildpkg





==== Overlays ====



==== revdep-rebuild ====



Lors de mises à jour du système, certaines librairies sont remplacées ou déplacées et cela peut nuire au bon fonctionnement du système. Pour pallier à ce problème, revdep-rebuild repertorie les liens brisés et recompile les applications pour qu'elle tiennent compte de ces changements. 



==== Autres ====

equery



