Как добавить новый путь к переменной $PATH в сценарии после установки RPM?
Я хочу автоматически добавлять новый путь к переменной $PATH каждый раз, когда мой RPM-пакет установлен.
Я попытался использовать сценарий после установки в моем RPM. Вот часть файла спецификации RPM, содержащая этот скрипт после установки:
%post
PATH=$PATH:/usr/app/mdg/bin
export PATH
Но после успешной установки $PATH не изменился. Пожалуйста, помогите мне с этим вопросом.
3 ответа
Когда вы добавляете путь в пост-сценарии RPM, он устанавливается только на время установки оболочки.
В вашем RPM вы хотите установить custom.sh
файл под /etc/profile.d/
,
# cat /etc/profile.d/custom.sh
#!/bin/bash
PATH=$PATH:/usr/app/mdg/bin
export PATH
Если вы используете CSH, файл должен быть назван custom.csh
,
Просто добавьте мягкую ссылку на путь к корзине вместо изменения переменной окружения:
% install ln -s / usr / app / mdg / bin / your-program / usr / bin your-program
Вместо добавления приложения в PATH вы можете создать мягкую ссылку на путь, уже существующий в PATH. Однако я бы предложил создать ссылку на шаге, которая будет выполняться на целевой машине вместо агента сборки. Причина в том, что вам могут потребоваться права для добавления ссылки в%build
или%install
шаг. Если вы создадите ссылку в%post
тогда ты будешь использоватьsudo
в любом случае, но на другом хосте.
%define _location /usr/app/%{_name}
...
%post
ln -sf %{_location}/bin/%{_name} /usr/bin/%{_name}
# ln -sf /usr/app/mdg/bin/mdg /usr/bin/mdg
Также не забудьте удалить ссылку при удалении приложения с компьютера:
%postun
unlink /usr/bin/%{_name}
# unlink /usr/bin/mdg