Как навсегда установить переменные окружения PATH и M2_HOME в Ubuntu для Maven3?

30

Я скачал последнюю apache-maven3.zip файл и извлеченный его в папку: /home/gaurav/Java/maven3.

Я не знаю, как установить переменные окружения для maven - такие как PATH и M2_HOME.

Я попробовал ниже вещи:

export M2_HOME=/home/gaurav/Java/maven3

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

После настройки я запустился, mvn --versionи он работает правильно.

Но когда я в следующий раз запускаю свой компьютер и печатаю $M2_HOME, он не показывает подробности переменных пути, и ни один из mvn --versionних не выполняется.

Пожалуйста, помогите мне решить эту проблему постоянной установки переменных среды в Ubuntu.

Гаурав Дише
источник
Взгляните на это
Митч

Ответы:

22

Обновление: Элия ​​указал мне, что если вы не создаете динамические переменные среды, вы должны хранить их в /etc/environment. Чтобы установить M2_HOMEи добавить binкаталог в свой каталог PATH, вы должны изменить его /etc/environmentследующим образом. Убедитесь, что вы не просто копируете / вставляете, потому что ваш /etc/environmentфайл может иметь PATHпеременную, отличную от моей.

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"


Альтернативный (не рекомендованный) метод: как сказал Митч, вам нужно отредактировать файл конфигурации, чтобы навсегда изменить свой PATH. Я решил отредактировать свой /etc/profileфайл конфигурации, потому что он применяется для всей системы. Чтобы отредактировать этот файл, запустите sudo nano /etc/profileВот соответствующая выдержка из моего файла конфигурации:

# /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
Любая причина , чтобы не только положить JAVA_HOME, M2_HOMEи M2определения в /etc/environment, вместо этого?
Элия ​​Каган
Это определенно семантически правильная вещь (потому что /etc/environmentэто рекомендуемое место для хранения системных переменных среды). Но я просто хотел сохранить все мои переменные среды в одном месте. Если бы был способ, которым я мог бы динамически построить свою PATHпеременную, используя только /etc/environment, я немедленно переключился бы.
Коннор Бринтон
1
Поскольку это ваша мотивация, вы, возможно, захотите добавить использование /etc/environmentв качестве альтернативы, учитывая, что цель размещения всех ваших переменных среды в одном и том же месте не обязательно является целью этого ОП или целью большинства других людей, которые задаются этим вопросом. Кроме того, вы можете пересмотреть эту цель: в большинстве случаев переменные среды следует добавлять на уровне учетной записи пользователя, чтобы повлиять только на одного пользователя. (Затем они могут войти ~/.pam_environmentили ~/.profile.) Это правда, что некоторые назначения переменных среды являются динамическими и должны быть в сценариях.
Элия ​​Каган
@ connor.brinton, хотя я сказал путь, используя вышеуказанный метод (редактирование /etc/environment), мой путь все еще не установлен
Касун Сиямбалапития,
3

Вы должны добавить свой PATH в /etc/bash.bashrc от имени пользователя root.

Из корня выполните следующие действия:

  1. sudo nano /etc/bash.bashrc
  2. В конце файла добавьте следующую строку:

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

Это просто псевдо-адрес. Измените его в соответствии с адресом, который вы хотите, и добавьте :$PATHпосле него.

Это для Ubuntu.

Кофе и коды
источник