【问题标题】:What does the colon (:) and dash (-) in an Ubuntu dpkg version number mean?Ubuntu dpkg 版本号中的冒号 (:) 和破折号 (-) 是什么意思?
【发布时间】:2012-03-25 15:43:23
【问题描述】:

我正在尝试获取已安装软件包的版本号,以便为 dpkg 构建依赖项列表。

如果我在终端中输入“dpkg -l | grep libqtcore4”,我会得到以下结果:

ii  libqtgui4       4:4.7.4-0ubuntu8      Qt 4 GUI module
ii  libqtgui4:i386  4:4.7.4-0ubuntu8      Qt 4 GUI module

我的问题是;版本号中的冒号 (:) 到底是什么意思,-0ubuntu 到底是什么意思?

【问题讨论】:

标签: linux ubuntu dependencies debian dpkg


【解决方案1】:

Debian 政策手册

这两个都包含在:https://www.debian.org/doc/debian-policy/#version,也转载于:

man deb-version

那些手册说完整格式是:

[epoch:]upstream_version[-debian_revision]

epoch

手册说:

提供它是为了允许遗留软件包旧版本的版本号以及软件包以前的版本编号方案中的错误。

例如,假设原始包有版本:

  • 2019.1
  • 2019.2
  • 1.2(原包决定随机更改发布命名方案)
  • 1.3

然后 Debian 将它们视为:

  • 0:2019.1(俗称2019.1,因为前面的0:可以省略)
  • 0:2019.2
  • 1:1.2(Debian 将 epoch 从 0 提升到 1 以应对新的命名方案)
  • 1:1.3

这样我们仍然可以从包版本字符串中清楚地知道版本顺序,或者如果原始包在新方案中实际重用旧名称版本的主要罪恶,则可以完全区分它们。

您能想象 Debian 开发人员必须适应的地狱般的事物类型吗? :-)

debian_revision

手册说:

这部分版本号指定了 基于上游版本的Debian包的版本

由于 Debian 软件包本身在软件源代码之上使用的构建脚本/补丁发生了变化,Debian 需要 Debian 修订版。

-ubuntuY

Ubuntu 还可以添加一个 -ubuntuY 后缀,以说明 Ubuntu 包装对 Debian 包装所做的更改。

例如,4:4.7.4-0ubuntu8 表示这是基于 4:4.7.4 Debian 软件包的 Ubuntu 软件包的第 8 版。

这是因为 Ubuntu 以 Debian 为基础,但它也可以在上面添加额外的更改。

当 Debian 软件包没有数字时,0 只是用作占位符,因为 debian_revision 是可选的。

更多详情请至:https://serverfault.com/questions/604541/debian-packages-version-convention/708569#708569

【讨论】:

    【解决方案2】:

    : 之前的数字是纪元。这会覆盖用于订购目的的版本,例如3:3.1 被认为比 2:3.2 更新。当打包者出于各种原因需要降级存储库中的包时使用它。

    - 后面的数字(实际上是值)是版本。它区分具有相同版本的包的不同版本。它用于例如现有软件版本的安全补丁。

    【讨论】:

    • Debian 版本格式的完整描述可以在 deb-version(5) 手册页中找到。
    猜你喜欢
    • 2015-02-11
    • 2012-10-09
    • 2012-09-25
    • 2019-09-14
    • 1970-01-01
    • 2011-10-20
    • 2020-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多