
решение1
Способ установки переменных среды для пользовательских приложений через пользовательский интерфейс работает несколько по-разному в Windows и Linux. Интерфейс Windows, который вы используете, изменяет как значения переменных в текущем сеансе, так и значения для будущих сеансов.
В Linux традиционные способы задания переменных окружения работают во время входа в систему. Есть несколько способов сделать это, но они подразумевают изменение файлов, которые считываются только во время входа в систему. Поэтому они не применяются к текущему сеансу. Основные файлы, которые вы можете использовать для этого, это .profile
и .pam_environment
, оба в вашем домашнем каталоге; см.Какой наилучший способ настройки переменных окружения, не зависящий от дистрибутива/оболочки?для более подробного обсуждения.
Чтобы задать переменные среды для текущего сеанса, вам нужно задать их в процессе, который запускает приложения: оболочка GUI. В Windows это просто, потому что нет реального выбора оболочки GUI. (Технически возможно заменить оболочку по умолчанию, но очень немногие пользователи делают это.) В Linux существуют сотни возможных оболочек GUI — оболочка GUI обычнооконный менеджер, иногда отдельный компонентсреда рабочего стола. Не существует стандартного способа установки переменных окружения в оконном менеджере или среде рабочего стола: у каждого WM/DE свой собственный способ (а у некоторых, к сожалению, его вообще нет).
WM/DE агностик изменения переменных окружения — это редактирование ~/.profile
. Базовый синтаксис (есть и другие способы) — это
export MYVAR='the value of the variable'
Затем запустите терминал (в котором запущена оболочка) и в этой оболочке введите
. ~/.profile
Это загружает новые значения переменных окружения из .profile
. После этого, если вы запустите программу из этой оболочки, новые переменные будут применены к этой программе. Но если вы запустите программу непосредственно из меню GUI, программа унаследует окружение программы, которая предоставляет меню GUI, поэтому, если вы хотите изменить это, вам придется использовать любой способ, который предоставляет эта программа (или сопутствующую программу как часть окружения рабочего стола).
решение2
Вы можете задать переменную в /etc/environment
файле. Формат должен быть таким:
VARIABLE=value
Имейте в виду, что расширение переменных не работает, /etc/environment
и вам необходимо перезапустить все процессы, которые будут использовать/потребовать эту/эти переменные.
решение3
Переменные среды по своей природе доступны всем процессам, запущенным процессом/оболочкой, которые устанавливают переменные среды.
Переменная среды в Unix — это переменная оболочки, которая экспортируется с помощью export
, например,
MYVAR="my value"
export MYVAR
Обычно вы устанавливаете переменные окружения в файле запуска оболочки. В случае bash
, это в ~/.bash_profile
, и многие другие оболочки используют ~/.profile
.
/etc
В разделе (например ) находятся общесистемные скрипты инициализации оболочки /etc/profile
, которые можно использовать для настройки среды для всех пользователей.
Переменные окружения также могут быть установлены глобально для всех пользователей в оболочке-агностической манере, но это делается по-разному в зависимости от вашего вкуса Unix. Большинство BSD могут делать это путем модификации, /etc/login.conf
в то время как некоторые Linux используют /etc/environment
или другие механизмы.