Как установить переменные среды сеанса и PATH?

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

Согласно этой странице в вики Ubuntu: https://help.ubuntu.com/community/EnvironmentVariables рекомендуемый способ установки переменных среды всего сеанса - изменить ~/.pam_environment.

Вот какова моя цель:

  1. Я хочу создать переменную среды ANDROID_HOME, в которой в качестве значения будет указан путь к определенному месту в моей домашней папке.
  2. Я хочу добавить две папки в PATH.

Вот что я сделал. Файл ~ /.pam_environment не существует, поэтому я создал его и добавил в него следующие строки:

ANDROID_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

Выйти из системы и войти снова.

Результат не ожидается. Я открыл терминал и повторил $ ​​ANDROID_HOME, и вот что я получил:

${HOME}/Android/Sdk

Выглядит как ${HOME} не заменяется на путь к моей домашней папке. Почему это так?

соблюдать cd-ing в $ANDROID_HOME (Android/Sdk действительно существует в моей домашней папке):

anvar@crazymachine:~$ cd $ANDROID_HOME
bash: cd: ${HOME}/Android/Sdk: No such file or directory

Также повторение $PATH дало мне это:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:${HOME}/Android/Sdk/tools:${HOME}/Android/Sdk/platform-tools

Почему переменные, не замещенные их значениями, логично предположить, особенно когда пример на вышеупомянутом сайте создает такое впечатление, что переменные могут использоваться внутри значений?

Как правильно установить переменные среды всего сеанса, к которым также имеют доступ программы GUI?

3 ответа

Решение

Пример в вики, для установки переменных сессии через ~/.pam_environment, говорится в записке:

Синтаксис, используемый для изменения PATH, синтаксис которого отличается от файлов сценариев, необходим для работы расширения переменных.

Следовательно, ваш первый ряд должен выглядеть так:

ANDROID_HOME DEFAULT=${HOME}/Android/Sdk

Два предложения:

1-й - форма ваших экологических заявлений должна быть:

ANDROID_HOME=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

во-вторых, поместите ваши новые заявления о среде в ~/.profile

Я думаю, что вам может понадобиться export HOME после настройки переменной пути (в ~/.bashrc мы это делаем)

Другие вопросы по тегам