Portage

Portage est le système de gestion des paquets sous Gentoo Linux.

Portage est écrit en python.

Les informations d’installation tels que le nom de l’archive à télécharger, les miroirs de téléchargement, bref toutes les options spécifiques à l’installation d’un paquet sont contenues dans un fichier portant l’extension .ebuild se trouvant /usr/portage/cotégorie/paquet-version.ebuild . Vous pouvez-vous bien sûr écrire vous même des ebuilds et pourquoi pas les proposer pour l’arbre officiel de portage.

Configuration

La configuration de Portage se situe majoritairement dans le répertoire /etc/portage et est composée de plusieurs fichiers :

make.conf

Le fichier make.conf contient les informations et options de compilation globales pour l’installation de votre distribution Gentoo Linux. Voici le minimum de ce qu’il doit contenir :

ACCEPT_KEYWORDS="amd64"
CHOST="x86_64-pc-linux-gnu"
CFLAGS="-mtune=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j2"
USE="-xorg -cups -fortran -X -acl -gpm bash-completion clang device-mapper vim-syntax ipv6 llvm lzma udev urandom threads"
LCD_DEVICES="ncurses text"
VIDEO_CARDS="fbdev vga"
ALSA_CARDS=""
ALSA_PCM_PLUGINS=""
LINGUAS="en"
APACHE2_MODULES=""
CAMERAS=""
CALLIGRA_FEATURES=""
COLLECTD_PLUGINS=""
GPSD_PROTOCOLS=""

make.profile

Le fichier make.profile est un lien symbolique vers le répertoire du profile actif. Vous pourvez le modifier via la commande eselect :

eselect profile list

*.accept_keywords

Les fichiers avec l’extension .keywords comprennent une liste de paquets qui doivent être installés en ~ARCH (~amd64, ~x86…).

*.license

Les fichiers avec l’extension .license comprennent une liste de paquets qui doivent être installés sur une licence spécifique.

*.mask

Les fichiers avec l’extension .mask comprennent une liste de paquets qui doivent être masqués.

*.unmask

Les fichiers avec l’extension .unmask comprennent une liste de paquets qui doivent être non-masqués pour être installés.

*.use

Les fichiers avec l’extension .use comprennent une liste de paquets et les USE qui doivent être appliqués à l’installation.

Utilisation

Maintenant comment utiliser Portage au quotidien…

Mettre à jour

L’arbre de paquets de portage

emerge --sync

Le système

emerge -avuDN @system

Le monde

emerge -avuDN @world

Appliquer un patch

Dans notre exemple nous appliquerons un patch sur les sources du paquets nvidia-drivers .

Créons le répertoire qui accueillera le patch du paquet :

mkdir -p /etc/portage/patches/x11-drivers/nvidia-drivers-319.32

Téléchargez le patch à appliquer :

wget https://bugzilla.kernel.org/attachment.cgi?id=102881 -O /etc/portage/patches/x11-drivers/nvidia-drivers-319.32/Linux-3.10.patch

Installez le paquet qui sera automatiquement patché par portage

emerge -av1 nvidia-drivers