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

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

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

3 ответов


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

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

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


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

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


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