如何制定 rpm 规范来移动以前标记为 %config 的文件?

How to make rpm spec that moves files that were previously marked as %config?

我要解决的问题如下:

在我的软件包的旧版本中,配置文件位于 /srv/product/ 目录。

%config /srv/product/conf1
%config /srv/product/conf2

但在下一个即将发布的版本中,我从包中删除了这些 conf 文件。 如果用户使用新版本升级包(配置不再包含在 rpm 中),我希望将以前版本的配置移动到不同的目录(它是 pkg 的一部分)并将它们保留在那里,但仍然将它们作为不是包裹的一部分。

我尝试使用 %pre%post 脚本移动文件,但没有成功。旧配置要么被移动然后被其父目录覆盖,要么已经在 /srv/product.

处被删除

是否可以在 rpm 规范文件中实现它?

您需要将文件保存在 %pre 并在 %post 部分恢复。 如何保存文件或一般情况下的任何状态,请参阅 https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Saving_state_between_scriptlets