Я видел в Интернете, что у других людей тоже была эта проблема, но решения были неубедительными, поэтому я хотел бы снова привлечь к ней внимание.
Согласно этой странице в вики Ubuntu: https://help.ubuntu.com/community/EnvironmentVariables Рекомендуемый способ установки переменных среды на уровне сеанса — изменение ~/.pam_environment.
Вот какова моя цель:
- Я хочу создать переменную среды ANDROID_HOME, которая в качестве значения будет содержать путь к определенному месту в моей домашней папке.
- Я хочу добавить две папки в PATH.
Вот что я сделал. Файл ~/.pam_environment не существовал, поэтому я создал его и добавил в него следующие строки:
ANDROID_HOME=${HOME}/Android/Sdk
PATH DEFAULT=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
Вышел из системы и снова вошел в систему.
Результат не ожидаемый. Я открыл терминал и выполнил echo $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
Почему переменные не заменены их значениями, как можно было бы логично предположить, особенно если учесть, что пример на вышеупомянутом сайте создает впечатление, что переменные можно использовать внутри значений?
Как правильно задать переменные среды сеанса, к которым также будут иметь доступ программы с графическим интерфейсом?
решение1
Пример ввики, для установки переменных сеанса через ~/.pam_environment
, в примечании говорится:
Синтаксис, используемый для изменения PATH, который отличается от синтаксиса файлов скриптов, необходим для работы расширения переменных.
Следовательно, ваша первая строка должна выглядеть так:
ANDROID_HOME DEFAULT=${HOME}/Android/Sdk
решение2
Два предложения:
1-е - форма ваших экологических заявлений должна быть следующей:
ANDROID_HOME=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
во-вторых, разместите ваши новые заявления об окружающей среде в~/.profile
решение3
Я думаю, вам может понадобиться export HOME
после настройки переменной path (в ~/.bashrc мы это делаем)