Как изменить $PATH во время установки RPM пакета?

Как изменить $PATH во время установки RPM пакета?

15.08.2012 04:25:45 Просмотров 28 Источник

Мне нужно, чтобы после установки RPM пакета к переменной PATH добавлялся один путь.

Для этого я собираю этот RPM c postinstall скриптом, который выполняется после инсталяции.

Часть RPM spec файла, которая содержит этот скрипт выглядит следующим образом:

%postPATH=$PATH:/usr/app/mdg/binexport PATH

Однако, после успешной установки пакета $PATH не меняется.

Подскажите, пожалуйста, как решить данную проблему

У вопроса есть решение - Посмотреть?

Ответы - Как изменить $PATH во время установки RPM пакета? / Как изменить $PATH во время установки RPM пакета?

Является ответом!
pyatak

15.08.2012 05:18:51

Дело в том, что при запуске скрипта, переменная $PATH меняется в дочернем shell-е, поэтому вы и не видете изменений. Вам необходимо включить в пакет shell скрипт, в котором:

#!/bin/bash

PATH=$PATH:/usr/app/mdg/bin

затем уже в пост-установочной секции прописать:

. /path/to/script

Таким образом вы заставите ком. интерпретатор не запустить скрипт, а прочитать его содержимое. Можете проверить запустив в ручную.

https://ru.stackoverflow.com/questions/342778/%d0%9a%d0%b0%d0%ba-%d0%b8%d0%b7%d0%bc%d0%b5%d0%bd%d0%b8%d1%82%d1%8c-path-%d0%b2%d0%be-%d0%b2%d1%80%d0%b5%d0%bc%d1%8f-%d1%83%d1%81%d1%82%d0%b0%d0%bd%d0%be%d0%b2%d0%ba%d0%b8-rpm-%d0%bf%d0%b0%d0%ba%d0%b5%d1%82%d0%b0/342781#comment342787_342781
@pyatak, я проверил. Действительно теперь код в скрипте выполняется в том же шелле, однако почему-то после того как RPM устанавиливается полностью в главном шелле по-прежнему нет никаких изменений.Я пробовал затем использовать export PATH в пост-установочной секции, но это не дало результат.Вероятно это связано с тем, что теперь переменная PATH меняется для SHALL в котором выполняется установка RPM пакета, а мне надо что бы изменялась переменная родительского SHALL ( т.е. SHALL в котором я запустил установку )
Закрыть X