debian 控制文件依赖问题

use*_*071 2 linux ubuntu debian dependencies packaging

我正在创建一个依赖于另一个的包。包 1 的版本号为 8.5.2-xxxxxxxxxxxx。我试图让包 2 依赖于 8.5.2 并忽略修订号。它必须完全依赖于 8.5.2,但任何 8.5.2 修订版都可以。我读到的所有内容似乎都表明我只能指定版本,而无需为控制文件中的 Depends 和其他设置指定修订号,但这不起作用。它总是说:

dpkg:依赖问题阻止了 [product2] 的配置:[product2] 依赖于 [product1] (= 8.5.2);但是:系统上 [product1] 的版本是 8.5.2-xxxxxxxxxxxx。

这里我在控制文件中的依赖行

取决于:[product1] (=8.5.2)

有谁知道这是否可能?

Arr*_*ter 5

您可以组合多个依赖于单个包以进行更严格的匹配。

Depends: [product1] (>= 8.5.2), [product1] (<< 8.5.3)
Run Code Online (Sandbox Code Playgroud)

这是一个相当肮脏的解决方案,因为我相信像 8.5.3~beta1 这样的版本号仍然会被接受。(<< 8.5.3~~)在这种情况下使用更脏的解决方案。

  • 在 Debian 中比较软件包版本号的方式由 `dpkg` 处理。在 `dpkg` 中,**~** 字符被赋予了一个低于 **nul** 的值,它被其他所有东西所流。例如这是`dpkg`看到的顺序:0.5, 0.9, 1.0~rc1, 1.0~rc2, 1.0, 1.0.1 (2认同)