如何防止并行安装多个版本的 RPM?
How to prevent parallel installation of multiple version of an RPM?
我正在创建一个 RPM 文件(使用 rpmbuild)。目前可以并行安装多个版本的 RPM(显然 RPM 不会阻止这种情况),但这会导致问题,因为我的 %pre
和 %post
脚本会创建和删除一些文件,因此多个并行安装会相互冲突。
有没有办法在构建 RPM 时防止这种并行安装?
该软件包适用于 CentOS (RHEL) 6。
编写 %pre
和 %post
脚本来处理这个问题(它们被赋予一个参数,指示事务完成时将安装多少个版本的包)。
或者,您可以尝试与您自己的软件包的所有旧版本发生冲突。这可能有用。
没有必要阻止并行安装,因为在给出并发请求时 RPM 数据库(或 YUM)会很忙。但是,如果您的软件包创建的文件不属于“%files”列表的一部分,那么您必须提供安装、卸载和升级。
对于升级,您需要一个一致的版本控制方案:"newer" 包必须有一个 "higher" 版本号。鉴于此,您的规范文件必须能够检查不同的模式(安装、卸载和升级)。详细信息在 RPM upgrade uninstalls the RPM 中,似乎缺少具体示例。
我正在创建一个 RPM 文件(使用 rpmbuild)。目前可以并行安装多个版本的 RPM(显然 RPM 不会阻止这种情况),但这会导致问题,因为我的 %pre
和 %post
脚本会创建和删除一些文件,因此多个并行安装会相互冲突。
有没有办法在构建 RPM 时防止这种并行安装?
该软件包适用于 CentOS (RHEL) 6。
编写 %pre
和 %post
脚本来处理这个问题(它们被赋予一个参数,指示事务完成时将安装多少个版本的包)。
或者,您可以尝试与您自己的软件包的所有旧版本发生冲突。这可能有用。
没有必要阻止并行安装,因为在给出并发请求时 RPM 数据库(或 YUM)会很忙。但是,如果您的软件包创建的文件不属于“%files”列表的一部分,那么您必须提供安装、卸载和升级。
对于升级,您需要一个一致的版本控制方案:"newer" 包必须有一个 "higher" 版本号。鉴于此,您的规范文件必须能够检查不同的模式(安装、卸载和升级)。详细信息在 RPM upgrade uninstalls the RPM 中,似乎缺少具体示例。