Menu Close
4.3. Epoch, Scriptlets 和 Triggers
本节介绍 Epoch
、Scriptlets
和 Triggers
,它们代表 RMP SPEC 文件的高级指令。
所有这些指令都影响不仅影响 SPEC 文件,还影响到安装结果 RPM 的末尾计算机。
4.3.1. Epoch 指令
Epoch
指令支持根据版本号定义权重的依赖关系。
如果 RPM SPEC 文件中未列出此指令,则完全不设置 Epoch
指令。这与常规的理解不同:不设置 Epoch
的结果是 Epoch
为 0。但是,dnf
工具会把一个未设置的 Epoch
视为 Epoch
为 0 用于处理。
但是,在 SPEC 文件中列出 Epoch
时通常会被省略,因为在大多数情况下,如果使用 Epoch
值,则在进行软件包版本比较时会 skews 预期的 RPM 行为。
例 4.2. 使用 Epoch
如果您安装了 foobar
软件包,带有 Epoch:1
和 Version:1.0
,以及其它软件包 foobar
,带有 Version:2.0
但没有 Epoch
指令,新版本永远不会被视为更新。原因是,在签发 RPM 软件包版本是首选使用 Epoch
版本而不是传统的 Name-Version-Release
marker。
使用 Epoch
比较罕见。但是,Epoch
通常用于解决升级排序问题。在软件版本号方案或带有字母字符的版本中,这个问题可能会出现上游变化的影响,这些字符不能始终根据编码进行可靠地进行比较。