Назад | Перейти на главную страницу

Добавление / etc / environment приводит к сбою bash

В RHEL 6.7 я добавил файл / etc / environment:

JAVA_HOME="/opt/jdk1.8.0_91"
JRE_HOME="{JAVA_HOME}/jre"
M2_HOME="/usr/local/apache-maven"
M2="{M2_HOME}/bin"
PATH="{JAVA_HOME}/bin:{JRE_HOME}/bin:{M2}:{PATH}"

Теперь при входе в систему bash выдает следующие ошибки:

-bash: id: command not found
-bash: id: command not found
-bash: id: command not found
-bash: uname: command not found

Удаление или переименование / etc / environment решает проблему.

Примечание: я не хочу использовать / etc / profile, потому что хочу, чтобы эти настройки были доступны для неинтерактивных оболочек.

/etc/environment не выполняет раскрытие переменных. Таким образом, ваш PATH сейчас буквально {JAVA_HOME}/bin:{JRE_HOME}/bin:{M2}:{PATH}, что, конечно, не сработает.

Если вы используете bash только, вы можете изучить настройку $BASH_ENV в /etc/environment вот так:

BASH_ENV=/etc/non-inter-test

где /etc/non-inter-test затем читается и выполняется неинтерактивными оболочками (и только этими, поэтому вы должны ссылаться на тот же файл в /etc/profile для интерактивных оболочек) и может содержать то, что сейчас находится в вашем /etc/environment.