Handbook:Parts/Portage/Advanced/fr

Introduction
Pour la plupart des utilisateurs, les informations reçues jusqu'à présent sont suffisantes pour toutes leurs opérations Linux. Mais Portage est capable de beaucoup plus ; bon nombre de ses fonctionnalités sont destinées aux utilisateurs avancés ou ne sont applicables que dans certains cas particuliers. Pourtant, cela n'est pas une excuse pour ne pas les documenter.

Bien sûr, avec beaucoup de flexibilité vient une énorme liste de cas potentiels. Il ne sera pas possible de les documenter tous ici. À la place, nous espérons mettre l'accent sur certaines questions génériques qui peuvent ensuite être adaptées aux besoins personnels. Plus de réglages et d'astuces peuvent être trouvés un peu partout dans le Wiki Gentoo.

La plupart, sinon toutes ces fonctionnalités supplémentaires peuvent être facilement trouvées en explorant les pages de manuel fournies par Portage :

Enfin, sachez qu'il s'agit de fonctionnalités avancées qui, si elles ne fonctionnent pas correctement, peuvent rendre le débogage et le dépannage très difficiles. Assurez-vous de les mentionner lorsque vous rencontrez un bogue et ouvrez un rapport de bogue.

Utiliser /etc/portage/env
Par défaut, les compilations de paquets utiliseront les variables d'environnement définies dans, telles que CFLAGS , MAKEOPTS et plus encore. Dans certains cas cependant, il peut être avantageux de fournir différentes variables pour des paquets spécifiques. Pour ce faire, Portage prend en charge l'utilisation de et.

Le fichier contient la liste des paquets pour lesquels des variables d'environnement déviantes sont nécessaires ainsi qu'un identificateur spécifique indiquant à Portage les changements à effectuer. Le nom de l'identifiant est libre et Portage cherchera les variables dans le fichier.

Exemple : Utilisation du débogage pour des paquets spécifiques
A titre d'exemple, nous activons le débogage pour le paquet.

Tout d'abord, définissez les variables de débogage dans un fichier appelé. Le nom est arbitrairement choisi, mais reflète bien sûr la raison de la déviation pour rendre plus évident par la suite pourquoi une déviation a été mise en place.

Ensuite, nous marquons le paquet pour utiliser ce contenu :

Utiliser /etc/portage/bashrc et fichiers associés
Quand Portage travaille avec des ebuilds, il utilise un environnement bash dans lequel il appelle les différentes fonctions de compilation (comme,  ,  , etc. ). Mais Portage permet également aux utilisateurs de configurer un environnement bash spécifique.

L'avantage d'utiliser un environnement bash spécifique est qu'il permet aux utilisateurs de s'accrocher au processus emerge lors de chaque étape qu'il effectue. Cela peut être fait pour chaque emerge (via ) ou en utilisant des environnements par paquet (via comme indiqué plus haut).

Pour s'accrocher au processus, l'environnement bash peut écouter les variables EBUILD_PHASE, CATEGORY ainsi que les variables toujours disponibles lors du développement d'ebuild (comme P , PF , ...). En fonction des valeurs de ces variables, des étapes/fonctions supplémentaires peuvent être exécutées.

Exemple : Mise à jour de la base de données de fichiers
Dans cet exemple, nous utiliserons pour appeler certaines applications de base de données de fichiers afin de garantir que leurs bases de données sont à jour avec le système. Les applications utilisées dans l'exemple sont (un outil de détection d'intrusion) et  (à utiliser avec ), mais elles sont utilisées comme exemples. Ne considérez pas cela comme un guide pour AIDE !

Pour utiliser dans ce cas, nous devons nous « accrocher » (hook) dans les fonctions   (après suppression des fichiers) et   ( après l'installation des fichiers), car c'est à ce moment que les fichiers ont été modifiés sur le système de fichiers.

Utiliser l'emplacement /etc/portage/postsync.d
Jusqu'à présent, nous avons parlé de l'accroche dans les processus ebuild. Cependant, Portage a aussi une autre fonction importante : mettre à jour le dépôt Gentoo. Pour exécuter des tâches après la mise à jour du dépôt Gentoo, placez un script dans et assurez-vous qu'il soit marqué comme étant exécutable.

Exemple : Exécuter eix-update
Si n'a pas été utilisé pour mettre à jour l'arbre, il est toujours possible de mettre à jour la base de données eix après avoir lancé  (ou ) en plaçant un lien symbolique vers  appelé  dans.

Utiliser /etc/portage/profile
Par défaut, Gentoo utilise les paramètres contenus dans le profil pointé par (lien symbolique vers le bon répertoire de profil). Ces profils définissent à la fois les paramètres spécifiques et les paramètres hérités des autres profils (via leur fichier parent).

En utilisant, les utilisateurs peuvent remplacer les paramètres de profil tels que les paquets (les paquets considérés comme faisant partie de l'ensemble du système), les options de la variables USE forcées, et plus encore.

Exemple : Ajouter nfs-utils à l'ensemble system
Lorsque vous utilisez un système de fichiers basé sur NFS pour des systèmes de fichiers plutôt critiques, il peut être nécessaire de marquer comme un paquet système, ce qui obligera Portage à avertir fortement les administrateurs si jamais une tentative est faite pour le désinstaller.

Pour ce faire, nous ajoutons le paquet à, précédé d'un  :

Utiliser epatch_user
Pour gérer plusieurs ebuilds de la même manière, les développeurs d'ebuilds utilisent des eclasses (qui sont des bibliothèques de shell) qui définissent les fonctions couramment utilisées. L'une de ces eclasses est qui offre une fonction utile appelée.

La fonction  applique les correctifs de code source qui se trouvent dans, quel que soit le répertoire trouvé en premier. Malheureusement, tous les ebuilds n'appellent pas automatiquement cette fonction, donc mettre un correctif à cet endroit peut ne pas toujours fonctionner.

Heureusement, avec les informations fournies plus haut dans ce chapitre, les utilisateurs peuvent appeler cette fonction en s'accrochant, par exemple, à la phase de préparation. La fonction peut être appelée autant de fois que nécessaire - elle n'appliquera les correctifs qu'une seule fois.

Exemple : Appliquer des correctifs à Firefox
Le paquet est l'un de ceux qui appellent déjà   dans l'ebuild, il n'est donc pas nécessaire de surcharger quoi que ce soit.

Si pour une raison quelconque (par exemple parce qu'un développeur a fourni un correctif et a demandé de vérifier s'il corrige le bogue signalé), il est nécessaire de patcher Firefox, il suffit de placer le correctif dans (il est probablement préférable d'utiliser le nom complet et la version pour que le correctif n'interfère pas avec les versions ultérieures) et de recompiler Firefox.