Как программно установить постоянную переменную среды в Linux?
Я пишу небольшую установку script для некоторого программного обеспечения. Все, что он делает, это распаковать целевой tar, а затем я хочу постоянно устанавливать некоторые переменные среды - в основном, расположение распакованных библиотек и обновление $PATH. Нужно ли мне программно редактировать файл .bashrc
, добавив, например, соответствующие записи в конец, или есть другой способ? Какая стандартная практика?
Изменить: Пакет включает в себя несколько сценариев запуска (20+), которые используют эти именованные переменные среды, поэтому мне нужно как-то их установить (имена переменных выбраны так, что столкновение крайне маловероятно)
Ответы
Ответ 1
LSB-совместимый (см. spec) практика заключается в создании оболочки script в папке /etc/profile.d/
.
Назовите его после вашего приложения (и убедитесь, что имя уникально), убедитесь, что имя заканчивается на .sh
(вы также можете добавить скрипты для других оболочек) и export
нужные вам переменные в script. Все скрипты *.sh
из этого каталога читаются при входе пользователя - в то же время /etc/profile
есть source
d.
Обратите внимание, что это не выполняется bash
; скорее, это соглашение рода.
Ответ 2
Стандартная практика заключается в установке в каталоги уже в пути и в стандартной библиотеке, поэтому нет необходимости обновлять эти переменные.
Обновление .bashrc немного отличается от прочего; что, если пользователь использует другой файл или оболочку?
Ответ 3
Вы также можете сгенерировать и установить script, который устанавливает эти переменные. Пользователи вашего пакета затем отправляют script или копируют его содержимое в собственный файл init оболочки.