我想使用 yum 安装一个软件包,而不是使用 rpm,但使用与--replacefiles
rpm 相同的行为。我有一个软件包与其他软件包有文件冲突,我需要使用 yum 强制安装。这个软件包是我的,所以我可以修改 spec 文件。
答案1
您可以使用触发脚本为了这。
为了说明,假设该文件/etc/contested
由名为 的 rpm 所有generally
,并且您有另一个包(specifically
)想要强制覆盖同一个文件。
在 中specifically.spec
,您将文件的新版本安装到%{_datadir}/%{name}/etc.contested
,并使用此触发器脚本将其安装到/etc
:
%triggerin -- generally install -m 0644 %{_datadir}/%{name}/etc.contested %{_sysconfdir}/contested
该脚本将在每次generally
安装或更新时运行,以及每次specifically
安装或更新时运行。
RPM 仍会注意到文件不符合预期,但不会阻止您安装或卸载。
答案2
如果您可以修改 spec 文件,也许您可以删除文件部分中冲突的文件?您是否在该部分指定了文件夹?还是逐个文件指定?