RPM 管理挑战
RPM management challenges
我们在第一次部署软件时打包了一个 RPM,我们对 RPM 还很陌生,所以我们只定义了所有需要安装的文件,它是 rpm 安装的一部分。
快进 6 个月后,我们需要更新此 RPM。以下是我们面临的挑战:
rpm update 将在安装新文件之前卸载以前 RPM 的所有文件。其中一些文件是配置文件,我们宁愿在卸载之前先备份它们
我们没有在第一个 RPM 中定义 %preun 和 %postun
谷歌搜索后,我们唯一的想法是编写一个需要第一个 RPM 版本的虚拟 RPM。虚拟 RPM 将简单地备份文件。我们将他们卸载第一个 RPM 并安装新的 RPM,其中定义了 %preun 和 %postun。
我很好奇是否有更好的方法来做到这一点?我们的应用程序环境肯定会发展,我想听听其他专业人士对此的意见。
如果您只担心不会丢失您的配置文件,您只需为您的配置文件添加一个%config(noreplace)标记。这将产生以下效果(仅针对那些配置文件):
- 未修改磁盘文件 --> 来自更新的文件
- 已编辑磁盘文件 --> 如果 rpm 提供新版本,则保留此文件;这个保存为file.rpmnew
如果您想更多地使用 scriptlet(使用 %pre
;%preun
等),请查看 this documenation.
如果您认为这消除了您对 %preun 和 %postun 部分的需求...
我们在第一次部署软件时打包了一个 RPM,我们对 RPM 还很陌生,所以我们只定义了所有需要安装的文件,它是 rpm 安装的一部分。
快进 6 个月后,我们需要更新此 RPM。以下是我们面临的挑战:
rpm update 将在安装新文件之前卸载以前 RPM 的所有文件。其中一些文件是配置文件,我们宁愿在卸载之前先备份它们
我们没有在第一个 RPM 中定义 %preun 和 %postun
谷歌搜索后,我们唯一的想法是编写一个需要第一个 RPM 版本的虚拟 RPM。虚拟 RPM 将简单地备份文件。我们将他们卸载第一个 RPM 并安装新的 RPM,其中定义了 %preun 和 %postun。
我很好奇是否有更好的方法来做到这一点?我们的应用程序环境肯定会发展,我想听听其他专业人士对此的意见。
如果您只担心不会丢失您的配置文件,您只需为您的配置文件添加一个%config(noreplace)标记。这将产生以下效果(仅针对那些配置文件):
- 未修改磁盘文件 --> 来自更新的文件
- 已编辑磁盘文件 --> 如果 rpm 提供新版本,则保留此文件;这个保存为file.rpmnew
如果您想更多地使用 scriptlet(使用 %pre
;%preun
等),请查看 this documenation.
如果您认为这消除了您对 %preun 和 %postun 部分的需求...