RPM spec file найти установленную версию


Мне нужно найти предыдущую версию пакета (если она уже установлена) при установке rpm. Мой файл спецификации выглядит следующим образом

В посте

%post if [ "$1" = "1" ]; then # Perform new install fi elif [ "$1" = "2" ]; then # Perform update # what I need is value for Version if [ $Version = 1.0]; then # do upgrade 1 fi elif [ "$Version" = "2" ]; then #do upgrade 2 fi

fi

В приведенном выше коде, как я могу получить значение для версии. Я попробовал использовать executing rpm-qi | grep <rpm_package> есть ли другие доступные методы?

1 2

1 ответ:

Не проверять версию. Проверьте, являются ли данные старыми или новыми.

См.: https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Saving_state_between_scriptlets

%pre
grep OLDDATA /etc/myconfig >/dev/null && touch %{_localstatedir}/lib/rpm-state/%{name}.DoSomethingLater

%posttrans
if [ -e %{_localstatedir}/lib/rpm-state/%{name}.DoSomethingLater ]; then
# do some conditional stuff
rm -f %{_localstatedir}/lib/rpm-state/%{name}.DoSomethingLater
fi