RPM 管理挑战

RPM management challenges

我们在第一次部署软件时打包了一个 RPM,我们对 RPM 还很陌生,所以我们只定义了所有需要安装的文件,它是 rpm 安装的一部分。

快进 6 个月后,我们需要更新此 RPM。以下是我们面临的挑战:

  1. rpm update 将在安装新文件之前卸载以前 RPM 的所有文件。其中一些文件是配置文件,我们宁愿在卸载之前先备份它们

  2. 我们没有在第一个 RPM 中定义 %preun 和 %postun

谷歌搜索后,我们唯一的想法是编写一个需要第一个 RPM 版本的虚拟 RPM。虚拟 RPM 将简单地备份文件。我们将他们卸载第一个 RPM 并安装新的 RPM,其中定义了 %preun 和 %postun。

我很好奇是否有更好的方法来做到这一点?我们的应用程序环境肯定会发展,我想听听其他专业人士对此的意见。

如果您只担心不会丢失您的配置文件,您只需为您的配置文件添加一个%config(noreplace)标记。这将产生以下效果(仅针对那些配置文件):

  • 未修改磁盘文件 --> 来自更新的文件
  • 已编辑磁盘文件 --> 如果 rpm 提供新版本,则保留此文件;这个保存为file.rpmnew

如果您想更多地使用 scriptlet(使用 %pre%preun 等),请查看 this documenation.

如果您认为这消除了您对 %preun 和 %postun 部分的需求...