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