138 votes

Définir une variable d'environnement dans Ubuntu

Dans Ubuntu, j'aimerais faire basculer ma variable d'environnement JAVA_HOME entre Java 5 et 6.

J'ouvre un terminal et je tape ce qui suit pour définir la variable d'environnement JAVA_HOME :

export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

Et dans cette même fenêtre de terminal, je tape ce qui suit pour vérifier que la variable d'environnement a été mise à jour :

echo $JAVA_HOME

Et je vois /usr/lib/jvm/java-1.5.0-sun ce qui est ce que je m'attends à voir. En outre, je modifie ~/.profile et fixe la variable d'environnement JAVA_HOME à /usr/lib/jvm/java-1.5.0-sun.

Et maintenant, le problème : lorsque j'ouvre une nouvelle fenêtre de terminal et que je vérifie la variable d'environnement JAVA_HOME en saisissant echo $JAVA_HOME Je constate que ma variable d'environnement JAVA_HOME a été ramenée à Java 6. Lorsque je redémarre ma machine (ou que je me déconnecte et me reconnecte, je suppose), la variable d'environnement JAVA_HOME est définie sur Java 5 (probablement à cause de la modification que j'ai apportée à mon ~/.profile).

Existe-t-il un moyen de contourner ce problème afin que je puisse modifier mon environnement JAVA_HOME sans avoir à me déconnecter et à me reconnecter (ET à modifier cette variable d'environnement) ? bâton dans tous les nouveaux terminaux Windows) ?

196voto

Martin Konicek Points 7999

Mettez les variables d'environnement dans le fichier global /etc/environment fichier :

...
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...

Exécutez "source /etc/environment" dans chaque shell où vous voulez que les variables soient mises à jour :

$ source /etc/environment

Vérifiez qu'il fonctionne :

$ echo $JAVA_HOME
$ /usr/lib/jvm/java-1.5.0-sun

Super, pas besoin de se déconnecter.

31voto

Holger Frohloff Points 674

Cela résoudra probablement votre problème : https://help.ubuntu.com/community/EnvironmentVariables

Variables d'environnement au niveau de la session

Afin de définir les variables d'environnement d'une manière qui affecte l'environnement d'un utilisateur particulier, il ne faut pas placer les commandes pour définir leurs valeurs dans des fichiers shell script particuliers dans le répertoire personnel de l'utilisateur, mais utiliser :

~/.pam_environment - Ce fichier est spécifiquement destiné à définir l'environnement d'un utilisateur. Il ne s'agit pas d'un fichier script, mais plutôt d'expressions d'affectation, une par ligne.

Non recommandé :

~/.profile - Il s'agit probablement du meilleur fichier pour y placer des affectations de variables d'environnement, puisqu'il est exécuté automatiquement par le DisplayManager pendant la session de bureau du processus de démarrage, ainsi que par le shell de connexion lorsque l'on se connecte à partir de la console textuelle.

13voto

Alex Points 440

Essayez ces étapes.

-- Nous allons éditer "etc \profile ". Les variables d'environnement sont à saisir en bas du fichier. Puisque Ubuntu ne donne pas donne pas accès au dossier Root, nous devrons utiliser quelques commandes dans le terminal

Étape 1 : Démarrez le terminal. Tapez la commande : gksudo gedit /etc/profile

Étape 2 : Le fichier texte du profil s'ouvre. Entrez les variables d'environnement au bas de la page............ Eg : export JAVA_HOME=/home/alex/jdk1.6.0_22/bin/java

export PATH=/home/alex/jdk1.6.0_22/bin:$PATH

étape3 : sauvegarder et fermer le fichier. Vérifiez si les variables d'environnement sont définies en utilisant la commande echo........ Par exemple, echo $PATH

9voto

Paweł Nadolski Points 2320

Vous devez mettre la définition de la variable dans le ~/.bashrc fichier.

Extrait de la page de manuel de bash :

Lorsqu'un shell interactif qui n'est pas qui n'est pas un shell de connexion est lancé, bash lit et exécute les commandes de /etc/bash.bashrc et ~/.bashrc, si ces fichiers ces fichiers existent.

5voto

Hongbo Zhu Points 1223

Traditionnellement, si vous souhaitez uniquement modifier la variable dans votre terminal Windows, définissez-la dans .bashrc qui est généré à chaque fois qu'un nouveau terminal est ouvert. .profile n'est pas créé à chaque fois que vous ouvrez un nouveau terminal.

Voir la différence entre .profile et .bashrc dans la question : Quelle est la différence entre .bashrc, .bash_profile et .environment ?

.bashrc devrait résoudre votre problème. Cependant, ce n'est pas la bonne solution puisque vous utilisez Ubuntu. Consultez la page d'aide Ubuntu correspondante " Variables d'environnement au niveau de la session ". Ainsi, il n'est pas étonnant que .profile ne fonctionne pas pour vous. J'utilise Ubuntu 12.04 et xfce. J'ai configuré mon .profile et il ne prend tout simplement pas effet, même si je me déconnecte et me reconnecte. Expérience similaire ici . Vous devrez donc peut-être utiliser .pam_environment et oublier totalement .profile et .bashrc . Et notez que .pam_environment n'est pas un fichier script.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X