Не сохраняются переменные XUBUNTU

Рейтинг: 3Ответов: 3Опубликовано: 26.12.2014

Не сохраняются переменные. Делаю так

export CATALINA_HOME="/opt..."

И все хорошо, но только до перезагрузки компьютера. После перезагрузки переменных не оказывается. В чем дело?

Ответы

▲ 4Принят

Чтобы установить переменную окружения для всей системы на Ubuntu, можно добавить файл /etc/profile.d/tomcat.sh и записать в него:

export CATALINA_HOME="/opt..."

Если только для одного пользователя хочется изменить переменную окружения, то можно использовать ~/.profile.

Оба файла исполняются (source) при заходе пользователя (login). См. EnvironmentVariables.

Точные правила, когда какие файлы читаются, зависят от shell (bash, zsh, sh), например, bash не читает ~/.profile при логине, если ~/.bash_profile или ~/.bash_login файлы существуют. Детали также могут зависеть от графической оболочки, версии дистрибутива.

При использовании bash, ~/.bashrc файл читается либо прямо (interactive shell), либо косвенно через *profile файлы (login shell).

Я видел, как люди составляли целые диаграммы, которые показывали, какие файлы когда читаются при запуске и существуют пакеты, которые пытаются нормализовать процесс и скрыть отличия. Это может улучшить переносимость за счёт повышения хрупкости и сложности решения.

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

▲ 1

Запишите переменки в глобальную область /etc/environment (может отличаться от вида ОС).
Либо в конфигуратор шела (к примеру, в файл ~/.bashrc).

▲ 1

Читайте The Bash Shell Startup Files.

Куда прописывать CATALINA_HOME=... (в /etc/profile или ~/.bashrc) зависит от того, как предполагается использовать tomcat на этом компе.

Тут один из примеров