rpm --升级同一软件包会导致文件冲突

rpm --升级同一软件包会导致文件冲突

我已经安装了包含一堆文件的自定义包。

第二次运行rpm --upgrade出现很多错误:

File ABC from install of mypackage-1.0-0.i386 conflicts with file from package mypackage-1.0-0.i386

RPM 退出并显示错误代码 5。

但它是相同的软件包,具有相同的版本号!它不应该说“已经安装”之类的吗?我需要对spec文件或rpm升级命令做什么才能避免这个问题?

运行时rpm --upgrade --replacefiles说“包mypackage-1.0-0.i386已安装”,退出代码为 5

(如果文件没有改变,我真的不想替换它们......

一些错误信息

答案1

您有多种选择。最简单的方法是在构建新包时增加版本和/或发行版,以便rpm -U(升级)命令正常工作。如果您不想这样做,可以使用rpm -U --replacefiles --replacepkgs有效地重新安装该软件包。第三种选择是在安装“新”包之前删除该包。

在所有这些情况下,属于常规 paylod 的所有文件(即未标记为noreplace配置文件)都将替换为较新的版本。这就是 RPM 的工作原理。如果您想只更新已更改的内容,则需要考虑生成 DRPM 包 (Delta RPM),它只包含与先前版本的差异。这将要求您在重建时增加版本和/或版本号。我从来没有做过增量 RPM 包,所以我无法提供任何关于它们的建议。

相关内容