Quels sont les bons endroits pour:
Je pense que la page du wiki de la communauté sur les variables d'environnement vous aidera à faire le tri
Pour ajouter à la réponse de sagarchalise, je peux résumer ce que le lien suggère comme lieux appropriés pour les paramètres.
/etc/environment
/etc/profile
ou /etc/bash.bashrc
De la page:
/etc/environment
[...] est spécifiquement conçu pour les paramètres de variable d'environnement à l'échelle du système. Ce n'est pas un fichier de script, mais plutôt une expression d'affectation, une par ligne. Plus précisément, ce fichier stocke les paramètres régionaux et de chemin d'accès à l'échelle du système.
Utiliser /etc/profile
est une méthode très Unix-y, mais ses fonctionnalités sont considérablement réduites sous Ubuntu. Il existe uniquement pour pointer sur /etc/bash.bashrc
et pour collecter les entrées à partir de /etc/profile.d
.
Sur mon système, la seule entrée intéressante dans profile.d est /etc/profile.d/bash_completion.sh
.
Une version précédente de la page Ubuntu recommandait ~/.pam_environment
, mais la page suggère actuellement que si cela ne fonctionne pas, vous devez utiliser
~/.profile
- C'est probablement le meilleur fichier pour placer des assignations de variable d'environnement, car il est exécuté automatiquement par DisplayManager lors de la session de bureau du processus de démarrage ainsi que par le shell de connexion lors de la connexion à partir de la console textuelle.
~/.bash_profile
ou ~./bash_login
- Si l'un de ces éléments existe, bash l'exécute au lieu de ~/.profile
lorsque bash est démarré en tant que shell de connexion. 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 définir des variables".Tu as:
/ etc/profile: fichier .profile à l'échelle du système pour les shells compatibles Bourne Shell (sh (1)) et Bourne (bash (1), ksh (1), cendres (1), ...).
qui dans Lucid et Maverick courir
/etc/profile.d/*.sh
si présent, et si le shell de l'utilisateur est bash:
/etc/bash.bashrc
Pour l’environnement utilisateur, il existe un tableau déroutant spécifique au shell et indiquant s’il est considéré ou non 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 à cela .
Comme recommandé sur https://help.ubuntu.com/community/EnvironmentVariables :
Les variables d'environnement globales destinées à affecter tous les utilisateurs doivent être insérées dans /etc/environment
.
Les variables d'environnement spécifiques à l'utilisateur doivent être définies dans ~/.pam_environment
.
Évitez les fichiers profile et rc pour la définition de variables d’environnement sur Ubuntu. Ils m'ont causé plus de maux de tête que ce qu'ils valent.
C'est plus facile à dire qu'à faire cependant;)
Il est possible que vous rencontriez le même problème de configuration que celui qui existait pour 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 le chemin statique laide? ${PATH}
ne fonctionnerait pas pour moi. J'ai bricolé mon identifiant plusieurs fois en essayant de le contourner, donc je m'en tiens à la copie statique laide des valeurs par défaut :)
Dans les versions Ubuntu jusqu’à Precise 12.04 Beta 2 incluse, si vous utilisez un répertoire personnel chiffré, vous devez modifier /etc/pam.d/common-session
pour le charger ~/.pam_environment
. Cette solution fonctionne apparemment pour les versions précédentes, mais je ne l’ai pas testée.
Cela semble être un problème avec les répertoires de départ crypté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 cryptés (également 10.04), la solution de contournement n’est pas nécessaire. Peut-être que dans mon cas, le système essaiera de lire ~/.pam_environment avant qu'il ne soit déchiffré.
Adapté de ma réponse au super utilisateur: https://superuser.com/a/408373/66856