Come impostare in modo permanente le variabili ambientali PATH e M2_HOME in ubuntu per maven3?


30

Ho scaricato il file più recente apache-maven3.zip ed estratto nella cartella: /home/gaurav/Java/maven3.

Non so come impostare le variabili ambientali per Maven - come PATH e M2_HOME.

Ho provato di seguito:

export M2_HOME=/home/gaurav/Java/maven3

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

Dopo averlo impostato, ho eseguito mvn --versione funziona correttamente.

Ma la prossima volta che avvio la mia macchina e digito $M2_HOME, non mi mostra i dettagli delle variabili del percorso, né mvn --versionviene eseguito.

Aiutatemi a risolvere questo problema di impostazione permanente delle variabili di ambiente in Ubuntu.


Dai un'occhiata a This
Mitch

Risposte:


22

Aggiornamento: Eliah mi ha fatto notare che se non si creano dinamicamente le variabili di ambiente, è necessario memorizzarle /etc/environment. Per impostare M2_HOMEe aggiungere la bindirectory alla tua PATH, devi modificare la tua /etc/environmentcome segue. Assicurati di non solo copiare / incollare, perché il tuo /etc/environmentfile potrebbe avere una PATHvariabile diversa dalla mia.

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"


Metodo alternativo (non come raccomandato): come ha detto Mitch, dovrai modificare un file di configurazione per cambiare permanentemente il PERCORSO. Ho scelto di modificare il mio /etc/profilefile di configurazione, perché si applica a tutto il sistema. Per modificare questo file, esegui sudo nano /etc/profileEcco il seguente estratto dal mio file di configurazione:

# /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

1
Qual è il motivo di non basta mettere i JAVA_HOME, M2_HOMEe M2definizioni di cui /etc/environment, invece?
Eliah Kagan,

Questa è sicuramente la cosa semanticamente corretta da fare (perché /etc/environmentè il posto consigliato per archiviare le variabili di ambiente a livello di sistema). Ma volevo solo mantenere tutte le mie variabili d'ambiente nello stesso posto. Se ci fosse un modo per costruire dinamicamente la mia PATHvariabile usando solo /etc/environment, cambierei immediatamente.
Connor Brinton,

1
Poiché questa è la tua motivazione, potresti voler aggiungere l'utilizzo /etc/environmentcome alternativa, considerando che l'obiettivo di mettere tutte le assegnazioni delle variabili di ambiente nello stesso posto non è necessariamente l'obiettivo di questo PO o l'obiettivo della maggior parte delle altre persone che si pongono in questa domanda. Inoltre, potresti voler riesaminare quell'obiettivo: il più delle volte, le variabili di ambiente dovrebbero essere aggiunte a livello di account utente, per interessare solo un singolo utente. (Quindi possono entrare ~/.pam_environmento ~/.profile.) È vero che alcune assegnazioni di variabili d'ambiente sono dinamiche e devono essere negli script.
Eliah Kagan,

@ connor.brinton anche se ho detto il percorso usando il metodo sopra (modificando il /etc/environment) il mio percorso non è ancora impostato
Kasun Siyambalapitiya

3

Devi aggiungere il tuo PERCORSO a /etc/bash.bashrc come root.

Dalla radice eseguire questi passaggi:

  1. sudo nano /etc/bash.bashrc
  2. Alla fine del file, aggiungi la seguente riga:

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

Questo è solo uno pseudo indirizzo. Modificalo in base all'indirizzo desiderato e aggiungilo :$PATHdopo.

Questo è per Ubuntu.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.