Réponses:
Je pense que la page 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.
L'utilisation /etc/profile
est un moyen très Unix-y, mais sa fonctionnalité est grandement réduite sous Ubuntu. Il n’existe que de pointer /etc/bash.bashrc
et de recueillir des entrées /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 était recommandée ~/.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 variables d’environnement, car il est exécuté automatiquement par le DisplayManager lors de la session de travail du processus de démarrage ainsi que par le shell de connexion lorsqu’on se connecte à partir de la console textuelle.
~/.bash_profile
ou ~./bash_login
- Si l'un d'entre eux existe, bash l'exécute au lieu de ~/.profile
démarrer bash 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 le lieu le plus facile pour définir des variables". /etc/environment
et quand? Il ne semble pas fonctionner avec cron, même lors de l'utilisationSHELL=/bin/bash
/etc/environment
aimer JAVA_HOME="/opt/java"
et ANT_HOME="/opt/ant"
comment le faire
Tu as:
/ etc / profile: fichier .profile à l'échelle du système pour le shell Bourne (sh (1)) et les shells compatibles avec 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 spécifique au shell qui porte à confusion 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 de donner un sens à cela .
Comme recommandé sur https://help.ubuntu.com/community/EnvironmentVariables :
Les variables d'environnement globales censées affecter tous les utilisateurs doivent entrer /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 Bêta 2 inclus, si vous utilisez un répertoire personnel chiffré, vous devez le 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 sur Super User: https://superuser.com/a/408373/66856
${HOME}
ça ne marchera pas non plus. Il n'y a pas d'expansion dans .pam_environment
.
.pam_environment
, mais HOME
n'est pas réglé si tôt que d'habitude. Si cette ligne avait été lue DEFAULT=${PATH}/Applications/jdk
, vous auriez vu la valeur de PATH
insérée dans celle-ci.