Quels sont les bons endroits pour :
- Des variables d'environnement globales censées affecter tous les utilisateurs ?
- Variables d'environnement spécifiques à l'utilisateur ?
Quels sont les bons endroits pour :
Pour compléter la réponse de Sagarchalise, je peux résumer ce que le lien suggère comme endroits appropriés pour les réglages.
/etc/environment
/etc/profile
o /etc/bash.bashrc
De la page :
/etc/environment
[...] est spécifiquement destiné à la variabilité de l'environnement des variables d'environnement. Il ne s'agit n'est pas un fichier script, mais se compose plutôt d'expressions d'affectation, une par ligne. Plus précisément, ce fichier stocke les paramètres régionaux et les chemins d'accès du système.
Utilisation de /etc/profile
est une façon très Unix de procéder, mais sa fonctionnalité est grandement réduite sous Ubuntu. Il n'existe que pour pointer vers /etc/bash.bashrc
et de recueillir les entrées de /etc/profile.d
.
Sur mon système, la seule entrée intéressante dans profile.d est /etc/profile.d/bash_completion.sh
.
La page Ubuntu recommande ~/.pam_environment
qui est chargé par le système PAM lorsque votre session est lancée (TTY, GUI, SSH, etc.). C'est l'équivalent pour l'utilisateur de /etc/environment
et utilise la même syntaxe. Le lien suggère des alternatives si cela ne fonctionne pas :
~/.profile
pour la plupart des coquilles. Ce fichier peut également être appliqué à votre session GUI par le gestionnaire d'affichage, mais ce n'est pas forcément le cas pour tous les gestionnaires d'affichage ou serveurs d'affichage (X11 vs Wayland) ou sessions.Et spécifique aux bashs :
~/.bash_profile
o ~./bash_login
- Si l'un d'entre eux existe, bash l'exécute à la place de ~/.profile
lorsque bash est lancé en tant que login Shell. Bash préférera ~/.bash_profile
à ~/.bash_login
. [...] Ces fichiers n'influenceront pas une session graphique par défaut."~/.bashrc
- "... peut être l'endroit le plus facile pour fixer des variables".Je pense la page wiki de la communauté sur les variables d'environnement vous aidera à régler
Tu l'as :
/etc/profile : fichier .profile à l'échelle du système pour l'interpréteur de commandes Bourne Shell (sh(1)) et les shells compatibles Bourne (bash(1), ksh(1), ash(1), ...).
qui dans Lucid et Maverick fonctionnent
/etc/profile.d/*.sh
s'il est présent, et si le Shell de l'utilisateur est bash :
/etc/bash.bashrc
Pour l'environnement utilisateur, il existe un tableau confus spécifique au Shell et s'il est considéré comme un "Shell de connexion". Si le Shell est bash :
~/.bash_profile
The personal initialization file, executed for login shells
~/.bashrc
The individual per-interactive-shell startup file
pour sh/dash :
$HOME/.profile
pour zsh, je ne vais même pas essayer pour donner un sens à tout cela .
Comme recommandé sur https://help.ubuntu.com/community/EnvironmentVariables :
Les variables d'environnement globales destinées à affecter tous les utilisateurs doivent être placées dans le dossier suivant /etc/environment
.
Les variables d'environnement spécifiques à l'utilisateur doivent être définies dans ~/.pam_environment
.
Évitez les fichiers profile et rc pour définir les variables d'environnement sur Ubuntu. Ils m'ont causé plus de maux de tête qu'ils n'en valent la peine.
Mais c'est plus facile à dire qu'à faire ;)
Il est possible que vous rencontriez le même problème de configuration que moi. Voir la solution de contournement pour la maison cryptée ci-dessous.
~/.pam_environment
:PATH DEFAULT=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:${HOME}/bin
IDEA_JDK DEFAULT=${HOME}/Applications/jdk
Pourquoi cet affreux chemin statique ? ${PATH}
ne fonctionnerait pas pour moi. J'ai cassé mon login plusieurs fois en essayant de le contourner, donc je m'en tiens à l'horrible copie statique des valeurs par défaut :)
Dans les versions d'Ubuntu jusqu'à et y compris Precise 12.04 Beta 2, si vous utilisez un répertoire personnel crypté, vous devrez modifier /etc/pam.d/common-session
pour qu'il se charge ~/.pam_environment
. Cette solution fonctionne apparemment pour les versions antérieures, mais je ne l'ai pas testée.
Cela semble être un problème avec les répertoires personnels chiffrés. J'ai ajouté
session requise pam_env.so
à la fin de /etc/pam.d/common-session et maintenant ~/.pam_environment est lu. Sur un autre système sans répertoires personnels chiffrés (également 10.04), la solution n'est pas nécessaire. Peut-être que dans mon cas, le système essaie de lire ~/.pam_environment avant qu'il ne soit décrypté.
Adapté de ma réponse sur Super User : https://superuser.com/a/408373/66856
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.