我有一个包含近4000个文件的RPM包,安装它需要相当长的时间。然而,在这 4000 个文件中,每个版本只有 25 个文件的固定列表发生变化。
我的查询:
是否可以以在安装和升级期间表现不同的方式构建 RPM?这就是我打算做的。
- 安装期间,将复制所有 4000 个文件。
- 在升级过程中,仅复制 25 个更改的文件,而不复制其余文件(因为它们需要很长时间才能安装,并且只会覆盖相同的文件)。
答案1
对的,这是可能的。
看一眼来自 Fedora 的这个有用的 wiki 页面这解释了预构建和后构建“scriplet”采用一个参数,当它们作为 RPM 安装的一部分运行时,该参数会传递给它们。
您可以添加一个检查来检测您的 scriplet 是升级还是全新安装。提供的链接包含如何在预安装脚本中执行此操作的示例。