Как программно установить постоянную переменную среды в Linux? - PullRequest
10 голосов
/ 23 мая 2010

Я пишу небольшой скрипт установки для некоторого программного обеспечения.Все, что он делает, - это распаковывает целевой tar, а затем я хочу навсегда установить некоторые переменные окружения - главным образом, расположение распакованных библиотек и обновление $ PATH.Нужно ли программно редактировать файл .bashrc, добавляя, например, соответствующие записи в конец, или есть другой способ?Какова стандартная практика?

Редактировать: Пакет включает несколько сценариев запуска (20+), которые все используют эти именованные переменные среды, поэтому мне нужно как-то их установить (имена переменныхбыл выбран так, что столкновение крайне маловероятно)

Ответы [ 3 ]

16 голосов
/ 23 мая 2010

LSB-совместимым (см. spec ) практикой является создание сценария оболочки в папке /etc/profile.d/.

Назовите его после вашего приложения (и убедитесь, что имя уникальное), убедитесь, что имя оканчивается на .sh (вы также можете добавить сценарии для других оболочек) и export необходимые вам переменные в сценарии. Все *.sh скрипты из этого каталога читаются при входе пользователя в систему - в то же время /etc/profile равно source d.

Обратите внимание, что это не применяется bash; скорее это своего рода соглашение.

3 голосов
/ 23 мая 2010

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

Обновление .bashrc немного подвержено сбоям, между прочим; Что делать, если пользователь использует другой файл или оболочку?

2 голосов
/ 23 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...