为什么 Ubuntu 软件包版本号与其余空间中的版本号不匹配?

Vyn*_*nce 3 versions openssl

Ubuntu 版本号与其余空间不匹配,目前尚不清楚它们为什么不匹配或它们如何实际工作。

例如,有 openSSL 1.0.1n 和 1.0.1f-1ubuntu9.8

这是什么原因?版本号的ubuntu部分是什么意思?我不是问为什么 1.0.1n 还不可用,我问的是为什么等效的(在安全补丁方面)有一个无法比较的名称。

kos*_*kos 6

您可能知道,Ubuntu 是 Debian 的一个分支。这意味着每个版本的 Ubuntu 都有很多软件包来自该 Ubuntu 版本所基于的 Debian 版本。添加尾随命名法以跟踪包的历史记录。

  • 1.0.1f:这显然是包中包含的 OpenSSL 版本;
  • 1:这是软件包的 Debian 版本;0这意味着该软件包不存在于 Debian 中,并且该软件包是由 Canonical 添加到 Ubuntu 中的;它的缺失意味着该软件包是由 Debian 本身添加的,而不是从上游派生的;
  • ubuntu:这意味着该软件包已从软件包的 Debian 版本更新;它的缺失意味着该软件包不是从软件包的 Debian 版本更新的(即 Debian 软件包未经修改直接包含在内);
  • 9.8:这是Ubuntu软件包的版本

所以,openssl-1.0.1f-1ubuntu9.8是修订9.8了的opensslUbuntu的软件包,它是基于修订1的的opensslDebian软件包,以及其中包含的OpenSSL 1.0.1f。

您可以在此处或通过运行命令找到有关 Debian 软件包版本编号的更多信息man 5 deb-version

  • 所有这些都在 [`man 5 deb-version`](http://manpages.ubuntu.com/manpages/man5/deb-version.5.html) 中有描述。 (2认同)
  • @Vynce 不。阅读变更日志。 (2认同)
  • @Vynce,有一个定义明确的算法 APT 用于比较两个版本字符串以找出哪个是“较新的”。大多数情况下,它是按字母顺序排列的,但对数字和“~”字符等进行了特殊处理。也就是说,正如穆鲁所说,“更新”的版本并不总是意味着它修复了更多的漏洞——你需要阅读变更日志。当然,如果你在你的 sources.list 中有通常的 repos,Debian/Ubuntu 总是试图确保你的包管理器永远不会根据策略从漏洞方面从更好的版本更新到更差的版本。 (2认同)