1

我有一个 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我使用这个页面作为参考。

4

2 回答 2

1

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

迄今为止最简单的解决方案(恕我直言)是在 CLI 上使用 --replacefiles 手动安装软件包。

于 2016-09-26T05:54:52.860 回答
-1

听起来您正在看到 和 之间的%config区别%config(noreplace)。但是,即使它不替换,我认为它应该将其导出为file.conf.rpmnew.

如果您真的需要它,您可以随时使用它rpm2cpio来提取原始文件。

于 2016-09-23T01:13:58.097 回答