Подтвердить что ты не робот

Как программно установить постоянную переменную среды в Linux?

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Ответ 3

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