rpm重新安装不会重新安装配置文件?

时间:2016-09-22 07:00:37

标签: rpm rpm-spec zypper

我有一个rpm,文件在%files部分标记为配置文件:

%files
%config /path/to/file.conf

现在假设我在磁盘上编辑此文件。我希望修理这个并重做一个干净的包安装;从而将配置文件恢复到原始状态;使用

zypper in -f my-package

这样做之后;配置文件仍处于其编辑版本中。如果它不是重新安装而是更新(包含更改版本的rpm!);然后rpm会将我编辑的文件移动到/path/to/file.conf.rpmsave并重新安装新文件。

我可以选择哪种方法来解决这个问题?这是正常的行为吗?如果我使用rpm;我想我可以使用rpm -if my-package.rpm --replacefiles;但是zypper不存在该选项。

PS我使用this page作为参考。

2 个答案:

答案 0 :(得分:1)

是的zypper需要添加--replacefiles才能覆盖%配置文件。更难的问题(对于zypper)是--replacefiles的范围:该选项适用于事务,而不适用于事务中的单个包。

到目前为止最简单的解决方案(imho)是在CLI上使用--replacefiles手动安装软件包。

答案 1 :(得分:-1)

听起来你看到%config%config(noreplace)之间存在差异。但是,即使它没有替换,我认为将其导出为file.conf.rpmnew

如果确实需要,您可以随时使用rpm2cpio提取原始文件。