使用非数字包组件作为版本的理由是什么?

使用非数字包组件作为版本的理由是什么?

在 ubuntu(不仅是 ubuntu)默认存储库中,您可以看到像2.2.14-5ubuntu8.12.

为什么维护者在中给出如此奇怪的版本中央包存储库

2.2.14-42该版本无法解决哪些任务?

答案1

命名空间:

  • 2.2.14是来自上游包的版本号(来自 apache.org)
  • -5是 debian 软件包版本
  • Ubuntu 在此之上做了一些修改,每次迭代都会增加版本号。ubuntu8.12

如果 Debian 制作了 a-6并且 Ubuntu 选择采用它,那么您2.2.14-6在 Ubuntu 中就会有 a ,可能还有 a2.2.14-6ubuntu1等等,并且数字会更大,如果您希望它被视为升级,这一点很重要apt

如果您想自己进行修改,您可能需要添加自己的命名空间:2.2.14-5ubuntu8.12zerkms1

一旦 Ubuntu 发布 2.2.14-5ubuntu8.13 或 2.2.14-5ubuntu9 或 2.2.14-6,这将是一个升级。

答案2

版本字符串的一部分是“上游”版本。 上游意味着朝向原始来源,并且下游意味着发行版包。我认为一般来说这之间没有什么真正的区别,所以基本上有两个阶段(原始源代码和编译的发行版包)。

例如,bash-4.2.39 就是这样。 bash-4.2.39 的原始源是完全相同的,并且来自同一个地方,无论您使用的是 fedora、ubuntu、arch 还是其他任何东西。 bash-4.2.39 只有一个来源。 “4.2.39”就是我所说的上游版本号。

然而,该源可以通过多种不同的方式进行编译(除了系统架构之外);当然,bash 就是这种情况。这是下游打包者做出的决定,他们还可能包含原始源中没有的内容(例如配置)。此时,为 ubuntu 打包的 bash 4.2.39 和为 fedora 打包的 bash 4.2.39 之间可能存在明显差异(以及同一发行版版本之间的差异)。这主要由版本字符串的最后部分表示——“ubuntu8.12”或其他。此外,该包到底是为哪个发行版和发行版版本编译的很重要,因为它与该包所需的其他包(共享库)相匹配;即使有可用于 ubuntu 10 和 12 的 bash 4.2.39,它们也可能无法互换。

像“-42”这样的东西表示发行版下游的一些附加版本控制。这可能与配置差异、发行版修补等有关,在这种情况下,相同的“-42”版本可能会在多个存储库中用于发行版的多个版本(及其派生)。

这加起来形成一个唯一的版本字符串,指示原始来源版本, 这封装版本,以及特定发行版 + 发行版版本

相关内容