构建 RPM 以在安装和升级时表现不同?

构建 RPM 以在安装和升级时表现不同?

我有一个包含近4000个文件的RPM包,安装它需要相当长的时间。然而,在这 4000 个文件中,每个版本只有 25 个文件的固定列表发生变化。

我的查询:

是否可以以在安装和升级期间表现不同的方式构建 RPM?这就是我打算做的。

  1. 安装期间,将复制所有 4000 个文件。
  2. 在升级过程中,仅复制 25 个更改的文件,而不复制其余文件(因为它们需要很长时间才能安装,并且只会覆盖相同的文件)。

答案1

对的,这是可能的。

看一眼来自 Fedora 的这个有用的 wiki 页面这解释了预构建和后构建“scriplet”采用一个参数,当它们作为 RPM 安装的一部分运行时,该参数会传递给它们。

您可以添加一个检查来检测您的 scriplet 是升级还是全新安装。提供的链接包含如何在预安装脚本中执行此操作的示例。

相关内容