Как добавить новый путь к переменной $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

https://unix.stackexchange.com/questions/45540/how-to-automatically-add-new-path-to-path-variable-after-rpm-packet-installatio

Вместо добавления приложения в 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
Другие вопросы по тегам