Gentoo Logo

Avertissement : Ce manuel a été remplacé par une version plus récente et n'est plus maintenu.


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


5. Variables d'environnement

Table des matières :

5.a. Variables d'environnement ?

Que sont-elles ?

Une variable d'environnement est un objet nommé qui contient des informations utilisées par une ou plusieurs applications. Beaucoup d'utilisateurs (particulièrement les nouveaux Linuxiens) trouvent que c'est un peu trop compliqué et ingérable. C'est bien sûr faux : en utilisant des variables d'environnement, on peut changer facilement la valeur d'une configuration pour une ou plusieurs applications.

Exemples importants

Le tableau suivant liste un certain nombre de variables utilisées par le système Linux et décrit leur utilisation. Des exemples de valeurs seront présentés après le tableau.

Variable Description
PATH Cette variable contient une liste de répertoires séparés par des deux-points dans lesquels le système cherche des fichiers exécutables. Si vous entrez le nom d'un exécutable (tel que ls, rc-update ou emerge), mais que cet exécutable n'est pas situé dans un des répertoires listés, votre système ne l'exécutera pas (tant que vous n'aurez pas spécifié le chemin complet avec ligne de commande, tel que /bin/ls).
ROOTPATH Cette variable a la même fonction que PATH, mais celle-ci liste les répertoires qui doivent être parcourus lorsque l'utilisateur root entre une commande.
LDPATH Cette variable contient une liste de répertoires séparés par des deux-points dans lesquels l'éditeur de liens dynamique cherche les bibliothèques.
MANPATH Cette variable contient une liste de répertoires séparés par des deux-points dans lesquels la commande man cherche les pages man.
INFODIR Cette variable contient une liste de répertoires séparés par des deux-points dans lesquels la commande info cherche les pages info.
PAGER Cette variable contient le chemin vers le programme utilisé pour lister le contenu des fichiers (tel que less ou more).
EDITOR Cette variable contient le chemin vers le programme utilisé pour éditer le contenu des fichiers (tel que nano ou vi).
KDEDIRS Cette variable contient une liste de répertoires séparés par des deux-points qui contiennent les éléments spécifiques à KDE.
CLASSPATH Cette variable contient une liste de répertoires séparés par des deux-points qui contiennent les classes Java.
CONFIG_PROTECT Cette variable contient une liste de répertoires séparés par des espaces qui doivent être préservés par Portage pendant les mises à jour.
CONFIG_PROTECT_MASK Cette variable contient une liste de répertoires séparés par des espaces qui ne doivent pas être préservés par Portage pendant les mises à jour.

Voici un exemple de définition de toutes ces variables :

Exemple de code 1.1 : Exemple de définitions

PATH="/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin"
ROOTPATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin"
LDPATH="/lib:/usr/lib:/usr/local/lib:/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"
MANPATH="/usr/share/man:/usr/local/share/man"
INFODIR="/usr/share/info:/usr/local/share/info"
PAGER="/usr/bin/less"
EDITOR="/usr/bin/vim"
KDEDIRS="/usr"
CLASSPATH="/opt/blackdown-jre-1.4.1/lib/rt.jar:."
CONFIG_PROTECT="/usr/X11R6/lib/X11/xkb /opt/tomcat/conf \
                /usr/kde/3.1/share/config /usr/share/texmf/tex/generic/config/ \
                /usr/share/texmf/tex/platex/config/ /usr/share/config"
CONFIG_PROTECT_MASK="/etc/gconf

5.b. Définir des variables globalement

Le répertoire /etc/env.d

Pour centraliser les définitons de ces variables, la distribution Gentoo utilise le répertoire /etc/env.d. Dans ce répertoire, vous trouverez un certain nombre de fichiers tels que 00basic, 05gcc, etc. qui contiennent les variables requises par les applications mentionnées dans leurs noms.

Par exemple, quand vous installez gcc, un fichier nommé 05gcc est créé par l'ebuild et contient les définitions des variables suivantes :

Exemple de code 2.1 : /etc/env.d/05gcc

PATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
ROOTPATH="/usr/i686-pc-linux-gnu/gcc-bin/3.2"
MANPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/man"
INFOPATH="/usr/share/gcc-data/i686-pc-linux-gnu/3.2/info"
CC="gcc"
CXX="g++"
LDPATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2.3"

Les autres distributions vous disent de changer ou d'ajouter ces variables d'environnement dans /etc/profile ou ailleurs. Par contre, Gentoo vous facilite la maintenance et l'administration de ces variables d'environnement, ce qui vous évite de vous soucier des nombreux fichiers qui peuvent contenir ces variables d'environnement. (Cela profite également au système Portage.)

Par exemple, lorsque gcc est mis à jour, le fichier /etc/env.d/05gcc est aussi mis à jour sans que l'utilisateur ne fasse quoi que se soit.

Cela n'est pas uniquement profitable à Portage, mais aussi à vous, en tant qu'utilisateur. Occasionnellement, vous serez amené à définir des variables d'environnement pour tout le système. Par exemple, avec la variable http_proxy. Au lieu de vous embêter avec /etc/profile, vous devez juste créer un fichier (/etc/env.d/99local) et y entrer vos définitions :

Exemple de code 2.2 : /etc/env.d/99local

http_proxy="proxy.server.com:8080"

En utilisant le même fichier pour toutes vos variables, vous avez une vue d'ensemble aisée de toutes les variables que vous avez définies.

Le script env-update

Plusieurs fichiers dans /etc/env.d définissent la variable PATH. Ce n'est pas une erreur : quand vous lancez env-update, celui-ci combinera les définitions avant de mettre à jour les variables d'environement. Ainsi, il aide les paquets (et les utilisateurs) à ajouter leurs propres variables d'environnement sans interférer avec les valeurs déjà définies.

Le script env-update liste les valeurs des fichiers de /etc/env.d par ordre alphabétique. C'est pourquoi beaucoup de fichiers dans /etc/env.d commencent par un nombre.

Exemple de code 2.3 : Ordre de mise à jour par env-update

         00basic        99kde-env       99local
     +-------------+----------------+-------------+
PATH="/bin:/usr/bin:/usr/kde/3.2/bin:/usr/local/bin"

Quand vous lancez env-update, le script crée toutes les variables d'environnement et les place dans /etc/profile.env (qui est utilisé par /etc/profile). Il extrait aussi les informations de la variable LDPATH et les utilise pour créer /etc/ld.so.conf. Après cela, il lance ldconfig pour créer le fichier /etc/ld.so.cache utilisé par l'éditeur de liens dynamique.

Si vous voulez connaître le résultat de env-update immédiatement après son exécution, lancez la commande suivante pour mettre votre système à jour. Les utilisateurs qui ont installé Gentoo eux-même se souviendront sûrement que cela se trouvait dans les instructions d'installation :

Exemple de code 2.4 : Mettre l'environnement à jour

# env-update && source /etc/profile

5.c. Définir des variables localement

Spécifiques à un utilisateur

Vous n'avez pas toujours besoin de définir des variables d'environnement globalement. Par exemple, vous pourriez avoir besoin d'ajouter /home/my_user/bin à la variable PATH, mais vous ne voulez pas que les autres utilisateurs de votre système l'aient aussi dans PATH. Si vous voulez définir une variable d'environnement localement, vous devriez utiliser ~/.bashrc ou ~/.bash_profile :

Exemple de code 3.1 : Étendre PATH pour un usage local avec ~/.bashrc

PATH="${PATH}:/home/my_user/bin"

Quand vous vous réidentifierez, votre variable PATH sera mise à jour.

Spécifiques à une session

Quelquefois, une définition plus spécifique est requise. Vous voudriez être capable d'utiliser des binaires d'un répertoire temporaire que vous avez créé sans utiliser le chemin complet ou éditer ~/.bashrc qui vous prendrait trop de temps.

Dans ce cas-ci, vous pouvez juste définir la variable PATH dans votre session courante en utilisant la commande export. Tant que vous ne vous serez pas déconnecté, la variable PATH utilisera la valeur temporaire.

Exemple de code 3.2 : Définir une variable d'environnement spécifique à une session

# export PATH="${PATH}:/home/my_user/tmp/usr/bin"

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


Imprimer

Voir tout

Dernière mise à jour le 9 novembre 2004

Cette traduction n'est plus maintenue

Résumé : Il est très facile de définir des variables d'environnement dans Gentoo. Ce chapitre explique comment faire et liste quelques variables très utilisées.

Sven Vermeulen
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

Lars Weiler
Correcteur

Jochen Maes
Correcteur

Grant Goodyear
Relecteur

Gerald J. Normandin Jr.
Relecteur

Donnie Berkholz
Relecteur

Ken Nowack
Relecteur

Xavier Neys
Traducteur responsable

Camille Huot
Traducteur responsable

Benjamin Girault
Traducteur

Olivier Fisette
Traducteur

Olivier Roomans
Traducteur

Vincent Strubel
Traducteur

Donate to support our development efforts.

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