Gentoo Logo

[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


1. Fichiers et répertoires

Table des matières :

1.a. Les fichiers utilisés par Portage

Configurer Portage

La configuration par défaut de Portage se trouve dans le fichier /usr/share/portage/config/make.globals. Vous remarquerez que toute la configuration de Portage se fait grâce à des variables. Les variables et leur utilisation sont décrites ci-dessous.

Puisque certaines directives de configuration diffèrent d'une architecture à l'autre, Portage utilise aussi plusieurs fichiers de configuration qui font partie de votre profil. Le profil sélectionné est celui vers lequel le lien symbolique /etc/portage/make.profile pointe. La configuration de Portage réside dans les différents fichiers make.defaults situés dans l'arborescence qui mène au répertoire de votre profil. Nous aborderons les profils et le répertoire /etc/portage/make.profile plus loin dans ce document.

Pour modifier une variable de configuration, ne modifiez ni le fichier /usr/share/portage/config/make.globals, ni les fichiers make.defaults. Modifiez plutôt /etc/portage/make.conf qui a priorité sur les autres fichiers. Vous trouverez aussi un fichier /usr/share/portage/config/make.conf.example, un fichier exemple que Portage ne lit pas mais que vous pouvez utiliser pour configurer votre propre /etc/portage/make.conf.

Vous pouvez aussi définir ces variables dans votre environnement, mais nous ne recommandons pas cette pratique.

Informations spécifiques au profil

Nous avons déjà mentionné le répertoire /etc/portage/make.profile. Ce n'est pas vraiment un répertoire, mais un lien symbolique vers un profil qui se trouve, par défaut, dans /usr/portage/profiles ; vous pouvez créer des profils ailleurs. Ce lien symbolique définit le profil utilisé par votre système.

Un profil contient des informations spécifiques pour chaque architecture telles que la liste des paquets qui forment un système de base, une liste de paquets qui ne fonctionnent pas ou qui sont masqués pour ce profil, etc.

Configuration par l'utilisateur

Pour influencer le comportement de Portage, vous devrez modifier des fichiers dans le répertoire /etc/portage. Il est vivement recommandé d'utiliser ces fichiers et de ne pas utiliser de variables d'environnement.

Vous pouvez créer les fichiers suivants dans le répertoire /etc/portage :

  • package.mask qui contient la liste des paquets que vous voulez ne jamais installer.
  • package.unmask qui contient la liste des paquets que vous voulez installer bien qu'ils aient été masqués par les développeurs Gentoo.
  • package.accept_keywords qui contient la liste des paquets que vous voulez installer même s'ils ne sont pas (encore) considérés stables pour votre architecture ou votre système.
  • package.use qui contient la liste des options de la variable USE que vous voulez appliquer à certains paquets, mais que vous ne voulez pas utiliser pour tout votre système.

Ce ne sont pas forcément des fichiers. Vous pouvez choisir de créer des répertoires qui contiendraient un fichier par paquet. La page man contient plus d'information à propos de ce que l'on peut faire avec le répertoire /etc/portage et une liste exhaustive des fichiers qui influencent le comportement de Portage.

Exemple de code 1.1 : lire la page man de Portage

$ man portage

Déplacer les fichiers et les répertoires de Portage

Les fichiers de configuration mentionnés ci-dessus ne peuvent pas se trouver ailleurs. Portage les recherche toujours à ces endroits précis. Cependant, Portage peut être configuré pour utiliser d'autres répertoires pour certains fichiers : le répertoire temporaire d'installation, les sources, l'arbre Portage, etc.

Par défaut, tous ces fichiers sont stockés dans des répertoires bien connus, mais ils peuvent être stockés ailleurs en fonction de variables définies dans le fichier /etc/portage/make.conf. Ce qui suit est consacré aux différents répertoires utilisés par Portage et à la methode à utiliser pour les déplacer.

Ce document n'est pas une liste exhaustive de tous les répertoires disponibles. Cette liste est disponible dans les pages man de Portage et de make.conf :

Exemple de code 1.2 : lire les pages man de Portage et de make.conf

$ man portage
$ man make.conf

1.b. Emplacemements des fichiers

L'arbre Portage

Le répertoire par défaut pour l'arbre Portage est /usr/portage. La variable PORTDIR peut être utilisée pour définir un autre emplacement. N'oubliez pas de rediriger le lien symbolique /etc/portage/make.profile vers le répertoire ad hoc.

Si vous redéfinissez la variable PORTDIR, vous devriez sans doute redéfinir les variables PKGDIR, DISTDIR et RPMDIR, car elles ne prendront pas la valeur de PORTDIR en compte.

Binaires précompilés

Portage peut également utiliser des paquets précompilés lors des installations, bien que cette fonctionnalité soit désactivée par défaut. Les paquets précompilés sont placés dans le répertoire défini par la variable PKGDIR, qui est définie comme /usr/portage/packages par défaut.

Code source

Le code source des applications est conservé dans /usr/portage/distfiles. Cet emplacement est défini par la variable DISTDIR.

La base de données de Portage

Portage mémorise l'état de votre système (quels sont les paquets installés, quels fichiers appartiennent à quel paquet, ... ) /var/db/pkg. Ne modifiez pas ces fichiers à la main ! Cela pourrait pourrait faire perdre à Portage l'exacte vision de votre système.

Le cache de Portage

Le cache de Portage (qui contient les dates de modification, les virtuels, les modifications de l'arbre de dépendances, ...) est stocké /var/cache/edb. Cet emplacement est réellement un cache, vous pouvez le vider is vous n'êtes pas en train d'exécuter une application en relation avec Portage.

1.c. Compiler les paquets

Fichiers temporaires

Portage sauve ses fichiers temporaires dans /var/tmp par défaut. La variable PORTAGE_TMPDIR définit cet emplacement.

Si vous redéfinissez la variable PORTAGE_TMPDIR, vous devriez aussi redéfinir BUILD_PREFIX, car elle ne tient pas compte du changement automatiquement.

Répertoire de compilation

Portage crée un répertoire de compilation pour chaque paquet dans le répertoire /var/tmp/portage. Cet emplacement est défini par la variable BUILD_PREFIX.

Localisation du système de fichiers principal

Par défaut, Portage installe tous les fichiers sur le système de fichiers courant (/), mais il peut copier les fichiers ailleurs si vous redéfinissez la variable ROOT. Cela peut être utile si vous voulez construire des nouvelles images d'installation pour d'autres systèmes.

1.d. Fonctions de journalisation des événements

Les messages des ebuilds

Portage peut journaliser les messages des événements relatifs aux ebuilds en utilisant un fichier pour chaque ebuild, mais uniquement si la variable PORT_LOGDIR correspond à un répertoire dans lequel Portage peut écrire (l'utilisateur portage doit disposer des permissions nécessaires). Par défaut, cette variable n'est pas définie. Si PORT_LOGDIR n'est pas définie, vous ne recevrez pas les messages des événements relatifs à la construction des paquets avec le système de journal actuel, mais vous devriez en recevoir quelques-uns avec le nouveau système appelé elog. Si PORT_LOGDIR est définie et que vous utilisez elog, vous recevrez à la fois les messages de construction et tous ceux qui sont sauvegardés par elog, comme expliqué plus loin.

Portage propose un contrôle fin de la tenue du journal des événements via elog :

  • PORTAGE_ELOG_CLASSES : utilisez cette variable pour définir le type de message à enregistrer. Vous pouvez utiliser n'importe quelle combinaison à base d'info, warn, error, log et qa, séparés par des espaces.
    • info : enregistre les messages « einfo » produits par un ebuild,
    • warn : enregistre les messages « ewarn » produits par un ebuild,
    • error : enregistre les messages « eerror » produits par un ebuild,
    • log : enregistre les messages « elog » que l'on trouve dans certains ebuilds,
    • qa : enregistre les messages « QA Notice » produits par un ebuild.
  • PORTAGE_ELOG_SYSTEM : cette variable sert à choisir le ou les modules qui vont traiter les messages. L'enregistrement est désactivé si cette variable reste nulle. Vous pouvez utiliser n'importe quelle combinaison des modules save, custom, syslog, mail, save_summary, et mail_summary, séparés par une espace. Vous devez sélectionner au moins un module pour utiliser elog.
    • save : ce module active la sauvegarde d'un enregistrement par paquet dans $PORT_LOGDIR/elog, ou /var/log/portage/elog si $PORT_LOGDIR n'est pas définie,
    • custom : transmet tous les messages à une commande définie par l'utilisateur dans $PORTAGE_ELOG_COMMAND (détaillée plus bas),
    • syslog : envoie tous les messages à l'outil de journalisation des événements du système (syslog-ng par exemple),
    • mail : envoie tous les messages à un serveur de mail défini dans $PORTAGE_ELOG_MAILURI, détaillée plus loin dans ce document. Cette fonction nécessite une version de Portage supérieure ou égale à 2.1.1,
    • save_summary : similaire à save, mais rassemble tous les messages dans $PORT_LOGDIR/elog/summary.log, ou /var/log/portage/elog/summary.log si $PORT_LOGDIR n'est pas définie,
    • mail_summary: similaire à mail, mais envoie tous les messages dans un seul mail quand emerge se termine.
  • PORTAGE_ELOG_COMMAND : cette option n'est utile qu'avec le module custom activé. C'est ici que vous spécifiez la commande qui va traiter les événements. Vous pouvez utiliser deux variables pour personnaliser votre commande : ${PACKAGE}, qui est le nom et la version du paquet, et ${LOGFILE}, qui est le chemin absolu du fichier d'enregistrement. Voici un exemple d'utilisation :
    • PORTAGE_ELOG_COMMAND="/chemin/vers/mon/enregistreur -p '\${PACKAGE}' -f '\${LOGFILE}'"
  • PORTAGE_ELOG_MAILURI : cette option sert à définir les paramètres du module mail tels que l'adresse, le nom d'utilisateur, le mot de passe, le serveur de mail et le numéro de port. Les paramètres par défaut sont "root@localhost localhost".
  • Prenons l'exemple d'un serveur SMTP avec authentification basée sur le nom et le mot de passe et qui écoute sur un port particulier (par défaut, un serveur SMTP est configuré sur le port 25) :
    • PORTAGE_ELOG_MAILURI="utilisateur@mon.domaine nom_utilisateur:mot_de_passe@smtp.mon.domaine:995"
  • PORTAGE_ELOG_MAILFROM : vous permet de modifier le champ « From » (expéditeur) des mails envoyés par elog. Par défaut, ces mails ont pour expéditeur « portage ».
  • PORTAGE_ELOG_MAILSUBJECT : avec cette variable, vous changez le sujet des mails envoyés par elog. Notez que vous pouvez utiliser les variables ${PACKAGE} et ${HOST} pour afficher respectivement le couple nom/version du paquet et le nom de domaine de la machine hôte sur laquelle tourne Portage.
  • Voici un exemple d'utilisation :
    • PORTAGE_ELOG_MAILSUBJECT="le paquet \${PACKAGE} a été construit sur \${HOST} accompagné de messages."

Important : si vous utilisiez enotice avec Portage-2.0.*, vous devez le désinstaller complétement car enotice est incompatible avec elog.


[ << ] [ < ] [ Sommaire ] [ > ] [ >> ]


Imprimer

Voir tout

Dernière mise à jour le 17 décembre 2013

Résumé : Maintenant que vous voulez en savoir plus sur Portage, il vous faut connaitre où il stocke à la fois ses fichiers et ses données.

Sven Vermeulen
Auteur

Grant Goodyear
Auteur

Roy Marples
Auteur

Daniel Robbins
Auteur

Chris Houser
Auteur

Jerry Alexandratos
Auteur

Seemant Kulleen
Développeur Gentoo x86

Tavis Ormandy
Développeur Gentoo Alpha

Jason Huebel
Développeur Gentoo AMD64

Guy Martin
Développeur Gentoo HPPA

Pieter Van den Abeele
Développeur Gentoo PPC

Joe Kallar
Développeur Gentoo SPARC

John P. Davis
Correcteur

Pierre-Henri Jondot
Correcteur

Eric Stockbridge
Correcteur

Rajiv Manglani
Correcteur

Jungmin Seo
Correcteur

Stoyan Zhekov
Correcteur

Jared Hudson
Correcteur

Colin Morey
Correcteur

Jorge Paulo
Correcteur

Carl Anderson
Correcteur

Jon Portnoy
Correcteur

Zack Gilburd
Correcteur

Jack Morgan
Correcteur

Benny Chuang
Correcteur

Erwin
Correcteur

Joshua Kinard
Correcteur

Tobias Scherbaum
Correcteur

Joshua Saddler
Correcteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Lars Weiler
Contributeur

Xavier Neys
Correcteur, traducteur

Camille Huot
Traducteur

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

José Fournier
Traducteur

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.