Portage User Guide Daniel Robbins Thomas Flavel Philippe Lafoucrière Ce guide explique rapidement comment garder vos paquets à jour, et comment maintenir votre système. 1.2.1 07 Mai 2002 Pour commencer
Téléchargement de l'arborescence Portage

Après avoir installé Gentoo Linux et alors que vous commencez à vous familiariser, vous pouvez trouver quelques 'bugs' ou caprices dans certains paquets, ou peut-être que vous voudrez installer les derniers paquets Gentoo Linux ou encore mettre à jour vos paquets actuels. Pour cela, vous devrez télécharger notre arborescence Portage. Nous mettons à votre disposition un serveur rsync avec accès anonyme à partir duquel vous pourrez récupérer notre dernière arborescence Portage. Voici la méthode à suivre.

Tout d'abord, créez un répertoire /usr/portage. Puis, Assurez vous que rsync est installé. Si ce n'est pas le cas, téléchargez le depuis notre miroir 'ibiblio' et installez le en tapant emerge rsync-x.y.z.tbz2. Ensuite, utilisez la commande suivante pour synchroniser votre répertoire Portage :

# emerge rsync

Périodiquement, vous voudrez sans doute lancer cette autre forme de la commande rsync, qui supprimera tout les anciens scripts ebuild:

Prenez note que emerge --clean rsync supprimera toutes vos modifications ou ajouts à l'arborescence /usr/portage, utilisez donc cette commande avec précaution.
# emerge --clean rsync 

Si vous effectuez des modifications régulières à votre arborescence /usr/portage, vous voudrez certainement contacter Daniel pour un accès CVS qui vous permettra d'effectuer des 'commit' et ainsi d'apporter vos modifications à l'arborescence CVS officielle de Portage.

Mise à jour de Portage

Avant d'utiliser votre arborescence, il est important de mettre à jour Portage. Pour cela, faites :

# cd /usr/portage/sys-apps/portage
# emerge portage-x.y.z.ebuild

A partir de maintenant vous allez utiliser la version la plus récente de Portage, et vous allez pouvoir commencer à utiliser notre système 'ebuilt' pour mettre à jour vos logiciels déjà installés.

Présentation de '<c>emerge</c>'
<c>emerge --pretend</c>

Pour installer un paquet, allez dans son répertoire dans /usr/portage, par exemple :

# cd /usr/portage/net-irc/xchat

Puis, lancez emerge --pretend pour voir quelles dépendances (s'il y en a) seront installées :

# emerge --pretend xchat-1.4.3.ebuild

These are the packages that I would merge, in order.

Calculating dependencies......... done!
[ebuild   U] sys-libs/zlib-1.1.3-r2 to /
[ebuild   U] dev-libs/glib-1.2.10 to /
[ebuild N  ] media-libs/jpeg-6b-r2 to /
[ebuild N  ] x11-base/xfree-4.0.3-r3 to /
[ebuild N  ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N  ] media-libs/giflib-4.1.0-r3 to /
[ebuild N  ] media-libs/tiff-3.5.6_beta to /
[ebuild N  ] media-libs/imlib-1.9.10 to /
[ebuild N  ] net-irc/xchat-1.4.3 to /

Dans ce cas particulier, nous tentons d'installer xchat sur une machine sur-laquelle X n'est pas installé. Ainsi, emerge --pretend a correctement identifié que plusieurs dépendances devaient être satisfaite d'abord. Spécifiquement, sys-libs/zlib et dev-libs/glib doivent être mis à jour, et donc un groupe de paquet (incluant x11-base/xfree, bien sur) devait être installé.

La variable 'USE' et <c>emerge</c>

Plus haut, nous avons exécuté emerge --pretend sur un système qui n'avait pas gnome défini dans la variable USE dans /etc/make.conf. Cela signifie que le support optionnel de GNOME, s'il est présent, ne sera pas activé. Cependant, xchat possède le support optionnel de GNOME, donc examinons la sortie de la commande emerge --pretend après avoir ajoutégnome à la variable d'environnement USE dans /etc/make.conf:

# emerge --pretend xchat-1.4.3.ebuild

These are the packages that I would merge, in order.

Calculating dependencies............................ done!
[ebuild N  ] media-libs/jpeg-6b-r2 to /
[ebuild N  ] gnome-base/libghttp-1.0.9 to /
[ebuild N  ] media-libs/audiofile-0.2.1 to /
[ebuild N  ] media-sound/esound-0.2.22-r2 to /
[ebuild N  ] gnome-base/gnome-env-1.0 to /
[ebuild N  ] gnome-base/libxml-1.8.11 to /
[ebuild N  ] gnome-base/ORBit-0.5.8 to /
[ebuild N  ] gnome-base/oaf-0.6.5 to /
[ebuild   U] dev-libs/glib-1.2.10 to /
[ebuild N  ] net-libs/libwww-5.3.2-r1 to /
[ebuild N  ] media-libs/giflib-4.1.0-r3 to /
[ebuild N  ] dev-util/guile-1.4-r3 to /
[ebuild   U] sys-libs/zlib-1.1.3-r2 to /
[ebuild N  ] x11-base/xfree-4.0.3-r3 to /
[ebuild N  ] x11-libs/gtk+-1.2.10-r1 to /
[ebuild N  ] media-libs/tiff-3.5.6_beta to /
[ebuild N  ] media-libs/imlib-1.9.10 to /
[ebuild N  ] gnome-base/gnome-libs-1.2.13 to /
[ebuild N  ] gnome-base/glibwww-0.2-r1 to /
[ebuild N  ] gnome-base/gdk-pixbuf-0.11.0 to /
[ebuild N  ] gnome-base/gconf-1.0.0 to /
[ebuild N  ] gnome-base/gnome-vfs-1.0.1 to /
[ebuild N  ] gnome-base/control-center-1.4.0.1 to /
[ebuild N  ] gnome-base/scrollkeeper-0.2 to /
[ebuild N  ] dev-util/xml-i18n-tools-0.8.1 to /
[ebuild N  ] gnome-base/libglade-0.16-r1 to /
[ebuild N  ] gnome-base/gnome-core-1.4.0.4 to /
[ebuild N  ] net-irc/xchat-1.4.3 to /

Comme vous pouvez le voir, avec gnome ajouté à la variable USE, emerge reconnaît que xchat devrait inclure le support optionnel de GNOME. Et bien sur, pour que ce support optionnel de GNOME soit compilé exécuté correctement, GNOME doit d'abord être installé. emerge le détermine automatiquement et ajoute différents paquets requis par GNOME à sa liste de paquet à installer. Il peut y avoir des fois ou votre variable USE n'est pas correctement affectée, forçant emerge à inclure ou exclure inopinément le support pour quelques extensions optionnelles. Voilà pourquoi nous recommandons que vous exécutiez systématiquement un emerge --pretend avant d'utiliser un emerge, et particulièrement pour les paquets nouveaux et non-familiers. De cette façon, vous saurez à quoi vous attendre. :) Lorsque tout semble OK, vous pouvez continuer avec un emerge 'réel' en enlevant l'option --pretend :

# emerge xchat-1.4.3.ebuild

Après l'installation de toutes les dépendances (si elles existent; ce n'est pas le cas de tous les paquets) , les sources de xchat seront téléchargés (vers /usr/portage/distfiles), vérifiés, décompressés, compilés et installés dans un répertoire temporaire. Alors, ils seront installés dans le système de fichier local et une base de données de paquets sera crée dans /var/db/pkg/net-irc/xchat-1.4.3/CONTENTS, contenant les fichiers installés ainsi que les md5sums pour tous les fichiers.

Mise à niveau des paquets

La méthode standard pour mettre à niveau (ndt : à jour) les paquets sous Gentoo Linux est d'installer le nouveau paquet, et de dés-installer l'ancien. Ceci est sur (et drôle) à faire. Tout d'abord, installez le nouveau paquet comme indiqué si dessus. Ensuite, dés-installez l'ancien paquet en tapant quelque chose comme :

# emerge unmerge =net-irc/xchat-1.0.0-r1

Portage utilise ce que l'on appelle une dés-installation "sure"; il supprime seulement les fichiers originaux. Si un fichier a été modifié de quelque manière que ce soit, il sera laissé sur le système de fichier (vraisemblablement, vous avez installé une nouvelle version du paquet). Donc, si vous des-installez une ancienne version de xchat après avoir installé une nouvelle version, l'exécutable xchat ne sera pas supprimé de votre système de fichiers, à partir du moment ou il a une date d'accès plus récente (ndt : timestamp) et un md5sum différent. Les dés-installions sures sont vraiment appréciées parce qu'elles assurent qu'une version de l'application est disponible à tout moment. Si vous devez dés-installer d'abord, alors xchat ne sera plus disponible pour quelques minutes, le temps qu'une nouvelle version soit téléchargée, compilée et installée.

Portage possède maintenant une nouvelle fonctionnalité appelée "config file protection". Le but de ce fonctionnalité est d'empêcher les nouvelles installations de paquet d'écraser les fichier de configuration existants. Par défaut, la protection des fichiers de configuration est activée pour /etc les répertoires de configuration de KDE; d'autres pourront être ajouté à l'avenir. Tapez emerge --help config pour plus de détails.