Jak na stałe ustawić zmienne środowiskowe PATH i M2_HOME w Ubuntu dla maven3?


30

Pobrałem najnowszy plik apache-maven3.zip i ekstrahowano go do folderu: /home/gaurav/Java/maven3.

Nie wiem, jak ustawić zmienne środowiskowe dla maven - takie jak PATH i M2_HOME.

Próbowałem poniżej rzeczy:

export M2_HOME=/home/gaurav/Java/maven3

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

Po ustawieniu tego uruchomiłem mvn --versioni działa poprawnie.

Ale kiedy następnym razem uruchamiam komputer i piszę $M2_HOME, nie pokazuje mi również szczegółów zmiennych ścieżkimvn --version jest wykonywany.

Pomóż mi rozwiązać problem trwałego ustawiania zmiennych środowiskowych w Ubuntu.


Spójrz na This
Mitch

Odpowiedzi:


22

Aktualizacja: Eliah zwrócił mi uwagę, że jeśli nie budujesz dynamicznie zmiennych środowiskowych, powinieneś je zapisać /etc/environment. Aby ustawić M2_HOMEi dodać binkatalog do swojego PATH, zmodyfikuj swój /etc/environmentw następujący sposób. Upewnij się, że nie tylko kopiujesz / wklejasz, ponieważ twój /etc/environmentplik może mieć inną PATHzmienną niż moja.

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"


Alternatywna (niezalecana) metoda: Jak powiedział Mitch, musisz edytować plik konfiguracyjny, aby trwale zmienić ŚCIEŻKĘ. Wybrałem edycję /etc/profilepliku konfiguracyjnego, ponieważ dotyczy on całego systemu. Aby edytować ten plik, uruchom sudo nano /etc/profileOto odpowiedni fragment mojego pliku konfiguracyjnego:

# /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
Jakikolwiek powód, aby nie tylko postawić JAVA_HOME, M2_HOMEi M2definicje w /etc/environmentzamiast?
Eliah Kagan

To zdecydowanie semantycznie poprawna rzecz do zrobienia (ponieważ /etc/environmentjest to zalecane miejsce do przechowywania zmiennych środowiskowych w całym systemie). Ale chciałem po prostu zachować wszystkie moje zmienne środowiskowe w tym samym miejscu. Gdyby istniał sposób, w jaki mógłbym dynamicznie budować moją PATHzmienną przy użyciu tylko /etc/environment, natychmiast przełączałbym się.
Connor Brinton

1
Ponieważ taka jest twoja motywacja, możesz chcieć dodać użycie /etc/environmentjako alternatywę, biorąc pod uwagę, że umieszczenie wszystkich zadań zmiennych środowiskowych w tym samym miejscu niekoniecznie jest celem tego PO lub celem większości innych osób, które zadają to pytanie. Możesz także ponownie zbadać ten cel: Przez większość czasu zmienne środowiskowe powinny być dodawane na poziomie konta użytkownika, aby wpływać tylko na jednego użytkownika. (Wtedy mogą wejść do ~/.pam_environmentlub ~/.profile.) To prawda, że ​​niektóre przypisania zmiennych środowiskowych są dynamiczne i muszą być w skryptach.
Eliah Kagan

@ connor.brinton chociaż powiedziałem, że ścieżka przy użyciu powyższej metody (edycja /etc/environment) moja ścieżka wciąż nie jest ustawiona
Kasun Siyambalapitiya

3

Musisz dodać swoją ŚCIEŻKĘ do /etc/bash.bashrc jako root.

Z poziomu root wykonaj następujące kroki:

  1. sudo nano /etc/bash.bashrc
  2. Na końcu pliku dodaj następujący wiersz:

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

To tylko pseudo adres. Zmień go zgodnie z żądanym adresem i dodaj :$PATHpo nim.

To jest dla Ubuntu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.