我有一个在 Launchpad上的构建,由于我无法理解的原因而失败。
该软件包清楚地将构建依赖项列出为:
Merged Build-Depends: ..., golang (>= 1:1.4~) | gccgo-5, ...
Filtered Build-Depends: ..., golang (>= 1:1.4~) | gccgo-5, ...
除非我遗漏了什么,否则这意味着golang
必须安装或 gccgo-5
必须安装 >= 1.4 的版本。
但是 APT 都不做这些事情。再往下,我们看到:
The following NEW packages will be installed:
... golang-go ...
0 upgraded, 29 newly installed, 0 to remove and 0 not upgraded.
Need to get 26.5 MB of archives.
After this operation, 139 MB of additional disk space will be used.
...
Get:27 [...] trusty/universe golang-go i386 2:1.2.1-2ubuntu1 [7148 kB]
1.2到底是如何golang
满足构建依赖的?这里发生了什么?我究竟做错了什么?
编辑:正如评论中所指出的,问题围绕着纪元数。我现在的问题变成了:我能做些什么来解决这个问题?
一旦 epoch 数字开始发挥作用,您就不能有意义地请求除旧 epoch 的精确版本之外的任何东西作为依赖。
>= 1:1.4
来自较新时代的任何包都将满足,甚至2:0.1
. 您可以使用完全匹配 (== 1:1.4
),但我怀疑这就是您想要的。由于所有当前受支持的 Ubuntu
golang
版本都有使用新 epoch 版本化的软件包,因此您也该迁移到它了。Debian也使用新纪元。因此,目前看来,只有非官方来源甚至会有1:
-versionedgolang
包。