如何防止并行安装多个版本的RPM?

时间:2015-02-27 15:03:05

标签: linux centos rpm rhel rpmbuild

我正在创建一个RPM文件(使用rpmbuild)。目前可以并行安装多个版本的RPM(显然RPM不会阻止这种情况),但这会导致问题,因为我的%pre%post脚本会创建和删除一些文件,因此多个并行安装将相互冲突。

构建RPM时有没有办法阻止这种并行安装?

该软件包适用于CentOS(RHEL)6。

2 个答案:

答案 0 :(得分:0)

编写可以处理此问题的%pre%post脚本(给出一个参数,指示在事务完成时将安装多少个版本的软件包。)

或者,您可能会尝试与您自己的软件包的所有旧版本冲突。这可能有用。

答案 1 :(得分:0)

没有必要阻止并行安装,因为在给出并发请求时RPM数据库(或YUM)会很忙。但是,如果您的包创建的文件不属于"%文件"列表,然后您必须提供安装,卸载和升级。

对于升级,您需要一致的版本控制方案:"更新"包装必须有更高的"版本号。鉴于此,您的spec文件必须提供检查不同模式(安装,卸载和升级)的条款。详情请见RPM upgrade uninstalls the RPM,这似乎缺乏一个具体的例子。