Comment définir de manière permanente les variables d'environnement PATH et M2_HOME dans ubuntu pour maven3?

30

J'ai téléchargé le dernier fichier apache-maven3.zip et extrait dans le dossier: /home/gaurav/Java/maven3.

Je ne sais pas comment définir les variables d'environnement pour maven - telles que PATH et M2_HOME.

J'ai essayé ci-dessous les choses:

export M2_HOME=/home/gaurav/Java/maven3

export PATH= /home/gaurav/Java/maven3/bin:${PATH}

Après avoir défini cela, j'ai couru mvn --versionet il fonctionne correctement.

Mais la prochaine fois que je démarre ma machine et que je tape $M2_HOME, elle ne me montre pas les détails des variables de chemin, ni l'une ni l'autre mvn --versionn'est exécutée.

Veuillez m'aider à résoudre ce problème de définition permanente de variables d'environnement dans Ubuntu.

Gaurav Dighe
la source
Jetez un oeil à This
Mitch

Réponses:

22

Mise à jour: Eliah m'a fait remarquer que si vous ne créez pas dynamiquement vos variables d'environnement, vous devez les stocker /etc/environment. Pour définir M2_HOMEet ajouter le binrépertoire à votre PATH, vous devez modifier votre /etc/environmentcomme suit. Assurez-vous de ne pas simplement copier / coller, car votre /etc/environmentfichier peut avoir une PATHvariable différente de la mienne.

M2_HOME="/home/gaurav/Java/maven3"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/gaurav/Java/maven3/bin"


Méthode alternative (non recommandée): Comme l'a dit Mitch, vous devrez modifier un fichier de configuration pour changer définitivement votre CHEMIN. J'ai choisi de modifier mon /etc/profilefichier de configuration, car il s'applique à l'ensemble du système. Pour éditer ce fichier, exécutez sudo nano /etc/profileVoici l'extrait pertinent de mon fichier de configuration:

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

JAVA_HOME=/usr/lib/jvm/java-6-oracle/
export JAVA_HOME

M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
export M2_HOME
M2=$M2_HOME/bin
export M2

PATH=$PATH:$JAVA_HOME
PATH=$PATH:$M2
export PATH
Connor Brinton
la source
1
Quel est le motif de ne pas mettre juste la JAVA_HOME, M2_HOMEet M2définitions /etc/environment, au lieu?
Eliah Kagan
C'est certainement la chose sémantiquement correcte à faire (car /etc/environmentc'est l'endroit recommandé pour stocker les variables d'environnement à l'échelle du système). Mais je voulais juste garder toutes mes variables d'environnement au même endroit. S'il y avait un moyen de construire dynamiquement ma PATHvariable en utilisant uniquement /etc/environment, je changerais immédiatement.
Connor Brinton
1
Étant donné que c'est votre motivation, vous voudrez peut-être ajouter l'utilisation /etc/environmentcomme alternative, étant donné que l'objectif de placer toutes vos affectations de variables d'environnement au même endroit n'est pas nécessairement l'objectif de ce PO ou l'objectif de la plupart des autres personnes qui se posent cette question. En outre, vous voudrez peut-être réexaminer cet objectif: la plupart du temps, les variables d'environnement doivent être ajoutées au niveau du compte d'utilisateur, pour n'affecter qu'un seul utilisateur. (Ensuite, ils peuvent entrer dans ~/.pam_environmentou ~/.profile.) Il est vrai que certaines affectations de variables d'environnement sont dynamiques et doivent être dans des scripts.
Eliah Kagan
@ connor.brinton bien que j'aie dit le chemin en utilisant la méthode ci-dessus (en éditant le /etc/environment) mon chemin n'est toujours pas défini
Kasun Siyambalapitiya
3

Vous devez ajouter votre CHEMIN à /etc/bash.bashrc en tant que root.

À partir de la racine, procédez comme suit:

  1. sudo nano /etc/bash.bashrc
  2. À la fin du fichier, ajoutez la ligne suivante:

    PATH=/home/computer/application/bin:$PATH  
    

Ceci est juste une pseudo adresse. Modifiez-le en fonction de l'adresse souhaitée et ajoutez-la :$PATHaprès.

C'est pour Ubuntu.

Café et codes
la source