我有一个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作为参考。
答案 0 :(得分:1)
是的zypper需要添加--replacefiles才能覆盖%配置文件。更难的问题(对于zypper)是--replacefiles的范围:该选项适用于事务,而不适用于事务中的单个包。
到目前为止最简单的解决方案(imho)是在CLI上使用--replacefiles手动安装软件包。
答案 1 :(得分:-1)
听起来你看到%config
和%config(noreplace)
之间存在差异。但是,即使它没有替换,我认为应将其导出为file.conf.rpmnew
。
如果确实需要,您可以随时使用rpm2cpio
提取原始文件。