[ << ]
[ < ]
[ 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
/etc/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 qui le lien
/etc/make.profile/make.defaults 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/make.profile plus loin dans ce
document.
Pour modifier une variable de configuration, ne modifiez ni le fichier
/etc/make.globals, ni les fichiers
make.defaults. Modifiez plutôt /etc/make.conf qui a
priorité sur les autres fichiers. Vous trouverez aussi un fichier
/etc/make.conf.example, un fichier d'exemple que vous pouvez
utiliser pour configurer votre propre /etc/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/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 contient la liste des paquets que vous voulez ne
jamais installer.
-
package.unmask contient la liste des paquets que vous voulez
installer bien qu'ils aient été masqués par les développeurs Gentoo.
-
package.keywords 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 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.
La page man contient une liste exhaustive des fichiers qui influencent le
comportement de Portage.
Exemple de code 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 au même endroit. 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/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 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/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
vaut /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.
Le cache de Portage
Le cache de Portage (contient les dates de modification, les paquets virtuels,
les informations de dépendance...) est stocké dans /var/cache/edb.
Ce n'est vraiment qu'un cache : vous pouvez l'effacer à un moment donné si
vous n'utilisez pas Portage à ce moment-là.
La base de données de Portage
Portage stocke l'état de votre système (quels paquets sont installés, quels
fichiers appartiennent à quel paquet...) dans /var/db/pkg. Ne
modifiez pas ces fichiers à la main ! Cela pourrait complètement
déboussoler Portage vis-à-vis de votre système.
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 et log, 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.
-
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 et mail,
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 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.
-
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 ]
[ > ]
[ >> ]
Ce document est protégé par la licence Creative
Commons : Paternité - Partage des Conditions Initiales à
l'Identique 2.5.
|