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 ответ:
Не проверять версию. Проверьте, являются ли данные старыми или новыми.
См.: 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