首次安装pkg后强制使用rpm -U

时间:2016-01-10 17:17:21

标签: rpm rpmbuild rpm-spec

我有一个包含我的应用程序配置文件的pkg,每年更新6次。

有史以来第一次安装pkg我想让系统管理员用rpm -i mypkg-1.2-0.rpm安装它

但是,在每次替换安装时,我想强制系统管理员使用升级开关rpm -U mypkg-1.2-1.rpm

运行它

我需要在rpm .spec中放置什么才能确保必须使用rpm -U开关

1 个答案:

答案 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

如果你的包允许同时安装多个版本,那么你应该小心谨慎。