我有一个包含我的应用程序配置文件的pkg,每年更新6次。
有史以来第一次安装pkg我想让系统管理员用rpm -i mypkg-1.2-0.rpm
安装它
但是,在每次替换安装时,我想强制系统管理员使用升级开关rpm -U mypkg-1.2-1.rpm
我需要在rpm .spec中放置什么才能确保必须使用rpm -U开关?
答案 0 :(得分:1)
要查看的地方是%pre
标记。根据最大RPM的Chapter 13. Inside the Spec File
安装软件包的第一个版本时,其
%pre
和%post
脚本将传递一个等于1的参数。
Fedora packaging page详细说明,您可以通过分别检查$1
是1还是2来检测安装和升级之间的区别。仔细阅读评论
请注意,如果安装了同一软件包的多个版本,这些值会有所不同(这主要发生在并行可安装软件包(如内核和多用软件包)上。但是,当错误阻止软件包升级完成时,也会出现这种情况。 )所以使用这个结构是个好主意:
%pre
if [ $1 -gt 1 ] ; then
fi
如果你的包允许同时安装多个版本,那么你应该小心谨慎。