包裹信息中的这两个字段到底是什么意思?

包裹信息中的这两个字段到底是什么意思?

使用 CentOS 6.8,当我输入时yum install tcpdump,系统输出:

Package 14:tcpdump-4.0.0-11.20090921gitdf3cb4.2.el6.x86_64 already installed and latest version

这一长段字符串没有帮助,为了获得更多信息,我输入了yum info tcpdump,返回以下内容:

Name        : tcpdump
Arch        : x86_64
Epoch       : 14
Version     : 4.0.0
Release     : 11.20090921gitdf3cb4.2.el6
Size        : 818 k
Repo        : installed
From repo   : base
... bla bla ...

它将原始的包名字符串分成了几个字段,我感兴趣的是这两个字段:Epoch Release

  • 什么是Epoch? 一些信息但没有什么启发
  • Release字段( )如何11.20090921gitdf3cb4.2.el6命名?惯例是什么?

答案1

较长的阅读请参阅:https://fedoraproject.org/wiki/Packaging:Versioning

纪元很少使用。未定义时,它被设置为 0 并且不被打印。纪元用于弥补命名方面的差距。例如,上游有一个项目,foo并且有版本 2009,他们突然决定更改版本,下一个版本将是 10。现在您的升级路径应该是从 foo-2009 到 foo-10,但 rpm 认为 foo-2009 > foo-10 并且不会升级它。因此维护者必须增加纪元,rpm 将比较 foo-2009 == 0:foo-2009 < 1:foo-10。

发布应该从 1 开始,每次发布新软件包时(但使用相同版本的相同 tar.gz),您都应该增加发布版本。这可以在安装后脚本中更改。运行时要求的更改。由于所需库的 ABI 更改而重建。或者因为维护者添加了补丁。通常修复一些安全原因。发布字段的格式不是标准化的,因此您只能猜测维护者为什么使用这种格式。事实上,您不需要猜测,因为您可以阅读 rpm 的更改日志,其中应该描述了更改。

相关内容