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