【发布时间】:2021-01-17 07:44:03
【问题描述】:
我想要一个尚未转换为使用模块的 Go 包的某个版本,我想在我的 go.mod 文件中使用它。具体来说,包是“github.com/docker/docker/pkg/system@v19.03.13”
当我运行以下命令时,我得到以下输出:
$ go get -v github.com/docker/docker/pkg/system@v19.03.13
go: found github.com/docker/docker/pkg/system in github.com/docker/docker v17.12.0-ce-rc1.0.20200916142827-bd33bbf0497b+incompatible
如您所见,下载的是版本v17.12.0-ce,而不是v19.03.13。我确实也注意到了“+incompatible”后缀,但我不确定这与这个问题有什么关系。根据docs
go 命令在没有 go.mod 文件的主要版本 2 或更高版本的版本中添加一个 +incompatible 后缀。 +incompatible 表示一个版本与具有较低主要版本号的版本属于同一模块;因此,go 命令可能会自动升级到更高+不兼容的版本,即使它可能会破坏构建。
所以我知道这个包没有 go.mod 文件,但是下载的版本 (17.x) 大于 2,所以我认为 +incompatible 不是问题。
我的问题是:当我指定版本v19.03.13时,为什么要安装v17.12.0-ce?
This是我要使用的版本
This是下载的那个
【问题讨论】:
-
版本无关紧要,因为它不是模块,而是根据对父树的最佳猜测生成合成版本。查看提交 id,您会看到您还从
v19.03.13获得了最新提交 -
嘿@JimB,好眼力,你想添加这个作为答案,我可以标记它正确吗?
标签: go go-modules moby