我想解决的问题如下:
在我的软件包的旧版本中,配置文件位于/srv/product/
dir。
%config /srv/product/conf1
%config /srv/product/conf2
但是在下一个即将发布的版本中,我从包中删除了这些conf文件。 如果用户使用新版本升级包(其中配置不再包含在rpm中),我希望将先前版本的配置移动到不同的目录(这是pkg的一部分)并将它们保留在那里,但仍然要将它们保留为不属于包装。
我尝试使用%pre
和%post
文章来移动文件,但它不起作用。旧的配置要么被移动,要么被其父目录覆盖,或者已经被/srv/product
移除。
是否可以在rpm spec文件中实现?
答案 0 :(得分:3)
您需要将文件保存在%pre中并在%post部分中将其恢复。 如何保存文件或一般任何状态都可以看到 https://fedoraproject.org/wiki/Packaging:ScriptletSnippets#Saving_state_between_scriptlets