Handbook:Parts/Working/EnvVar/ru

Введение
Переменная окружения — это именованный объект, который содержит определения, используемые одним или несколькими приложениями. Многие пользователи (особенно новички в Linux) найдут это странным или неуправляемым. Тем не менее, это ошибка: используя переменные окружения, можно очень легко изменить настройки для одного или нескольких приложений.

Наиболее важные переменные
В следующей таблице перечислен ряд переменных, используемых в системе Linux и описание их использования. Примеры их значений приведены после таблицы.

Ниже приведен пример содержащий все эти переменные:

Каталог env.d
Для централизации определения переменных в Gentoo ввели каталог. Внутри каталога есть несколько файлов, такие как, , и т.д., которые содержат переменные, необходимые программе из названия файла.

Например, когда установлен, ebuild создает файл с названием , который содержит определения следующих переменных:

Другие дистрибутивы просят пользователя изменять или добавлять такие определения переменных окружения в или в других местах. С другой стороны, в Gentoo очень просто для пользователя (и для Portage) обслуживать и управлять переменными окружения без необходимости обращать внимание на многочисленные файлы, которые содержат переменные окружения.

Например, когда обновляется, также обновляется и файл без малейшего участия пользователя.

От этого выигрывает как Portage, так и пользователь. Иногда пользователям необходимо установит определенную переменную окружения для всей системы. Например, возьмем переменную http_proxy. Чтобы не возится с, пользователь может просто создать файл (скажем ) и написать необходимое определение(я) в нем:

Используя один и тот же файл для всех пользовательских переменных можно получить компактный список переменных, которые были определены пользователем самостоятельно.

env-update
Несколько файлов в определяют переменную PATH. Это не ошибка: когда выполняется команда, она добавит другие определения перед обновлением переменного окружения, что позволяет просто добавлять для пакетов (или пользователей) свои собственные настройки переменного окружения без вмешательство в уже существующие значениями.

Скрипт добавляет значения из файлов  в алфавитном порядке. Имена файлов должны начинаться с двух десятичных чисел.

Объединение переменных происходит не всегда, а только для следующих переменных: ADA_INCLUDE_PATH, ADA_OBJECTS_PATH , CLASSPATH , KDEDIRS , PATH , LDPATH , MANPATH , INFODIR , INFOPATH , ROOTPATH , CONFIG_PROTECT , CONFIG_PROTECT_MASK , PRELINK_PATH , PRELINK_PATH_MASK , PKG_CONFIG_PATH и PYTHONPATH. Для всех остальных переменных используется последнее значение (в алфавитном порядке файлов в ).

Можно добавить больше переменных к списку объединяемых переменных, добавив имя переменной в одну из переменных COLON_SEPARATED или SPACE_SEPARATED (также внутри файла ).

При запуске, скрипт создаст все переменное окружение и поместит его в (который используется ). Кроме того, скрипт на основе значения LDPATH создаст. После этого он запустит, чтобы пересоздать файл , используемый динамическим компоновщиком.

Чтобы увидеть эффект работы сразу после его запуска, выполните следующую команду, чтобы обновить окружение. Пользователи, которые устанавливали Gentoo сами, вероятно, помнят, что это из инструкции по установке:

Для пользователя
Не всегда нужно определять переменную окружения на глобальном уровне. Например, кому-то может понадобится добавить и текущий рабочий каталог (каталог в котором находится пользователь) в переменную PATH, но не нужно чтобы все другие пользователи получили такой же PATH. Для определения переменной окружения локально, используйте или :

После выхода/входа, переменная PATH будет обновлена.

Для сессии
Иногда необходимы более жесткие ограничения. Например, необходимо использовать двоичные файлы из временного каталога без указания пути к ним или редактирования на короткий срок.

В этом случае просто определите переменную PATH для текущей сессии, воспользовавшись командой. До тех пор пока пользователь не выйдет, переменная PATH будет использовать временные настройки.