Je viens de changer mon fichier /etc/environment
en:
M2_HOME=/usr/local/Apache-maven/Apache-maven-3.1.1
M2=$M2_HOME/bin
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
PATH=$M2:$PATH
Java_HOME=/usr/local/jdk1.6.0_45
PATH=$Java_HOME:$PATH
(essayer de faire quelque chose de similaire à this )
Cependant, lorsque j'ai essayé de vérifier les variables d'environnement en tapant, par exemple, echo "$M2"
, le résultat est une ligne vide pour toutes les variables et $ PATH est identique à celui utilisé avant la modification du fichier. Pourquoi mes modifications n'ont-elles pas fonctionné? J'ai essayé de fermer et d'ouvrir le shell, mais rien ne se passe.
/etc/environment
prend une nouvelle connexion pour prendre effet, car il est traité par PAM lors de la connexion. En outre, comme @przemo l’a noté, il n’est pas exécuté ou créé en tant que script, les variables ne sont donc pas développées. Placez ces variables dans un fichier .sh
dans /etc/profile.d/
:
Sudo tee -a /etc/profile.d/my_vars.sh <<"EOF"
export M2_HOME=/usr/local/Apache-maven/Apache-maven-3.1.1
export M2=$M2_HOME/bin
export PATH=$M2:$PATH
export Java_HOME=/usr/local/jdk1.6.0_45
export PATH=$Java_HOME:$PATH
EOF
Cela demandera également une nouvelle connexion pour prendre pleinement effet, mais vous pouvez le tester immédiatement en exécutant un shell de connexion:
$ bash -l
$ echo $PATH
/usr/local/jdk1.6.0_45:/usr/local/Apache-maven/Apache-maven-3.1.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Comme Gunnar l'a fait remarquer, l'affectation par défaut de PATH
devrait rester dans /etc/environment
et ne devrait pas être ajoutée au script ci-dessus. Voir cette page wiki de la communauté pour plus d'informations.
/etc/environment
n'est pas un fichier de script, vous ne pouvez pas utiliser de variables. Pour en savoir plus, je le recommande https://help.ubuntu.com/community/EnvironmentVariables