如何在执行rpm更新时保存旧的配置/元数据文件

时间:2018-04-09 16:14:39

标签: rpm rpmbuild rpm-spec

问题定义:假设我在构建X1时使用rpm版本的pkg 提供文件Y1(包含元数据)。我接下来做rpm -Uvh 使用rpm 2版本的pkg可以提供更新的文件Y1(但实际上 endup覆盖前一个文件)。安装rpm2后 - 重新启动 主持人待定。

我想做的是:保留或保存Y1直到重启 然后只有覆盖。问题。 1.我怎么能这样做? 2. rpmsave或rpmnew功能是否适用于此? 一个具体的例子非常有用。

谢谢。

2 个答案:

答案 0 :(得分:1)

您应将其标记为:

%files
%config(noreplace) your.conf

这将在升级期间保留旧配置,新配置将创建为your.conf.rpmnew。 这是rpm离开你的时候。

然后您基本上有两个选项,指示用户重新启动,然后运行rpmconf -o yourpackage以合并或替换您的配置。

或者,如果这是一台服务器,你可以提供ansible playbook,它将升级包,重新启动服务器,然后将your.conf.rpmnew移动到your.conf。

答案 1 :(得分:0)

Stock RPM无法做到这一点。它有%config宏(有一些参数可用)。您必须自定义编写一次性脚本并将其放在某处以便在下次启动时运行。

有一些官方的Fedora指南here