转到列表:查询没有匹配的版本 "latest"

go list: no matching versions for query "latest"

我正在尝试 运行 opentelemetry-collector-contrib 项目上的 go list -mod=readonly -m -u -json all 命令。

失败并出现以下错误:

$ go list -mod=readonly -m -u -json all
go list -m: loading module retractions for github.com/DataDog/datadog-agent/pkg/trace/exportable@v0.0.0-20201016145401-4646cf596b02: no matching versions for query "latest"
go list -m: loading module retractions for github.com/influxdata/line-protocol/v2@v2.0.0-20210428091617-0567a5134992: no matching versions for query "latest"
$ echo $?
1

我正在使用 go 1.16.5:

$ go version
go version go1.16.5 linux/amd64

我用 go clean -modcache 清理了 go 缓存,结果相同。

我找到了两个模块 https://pkg.go.dev/:

github.com/DataDog/datadog-agent/pkg/trace/exportable 似乎有确切的版本,但 github.[=46 没有=],但无论如何都报告相同的错误。

我不知道 golang 在这里期望什么以及如何开始解决问题。

有人可以帮忙吗?

这似乎是一个错误 (https://github.com/golang/go/issues/45305),因为在 Go 1.16 中 go.mod 中引入了 retract 指令。事实上,如果您省略 -m 标志,命令运行正常。

如问题线程中所述,您可以添加 -e 标志以继续前进,尽管有错误:

$ go list -mod=readonly -m -u -e -json all

{
    "Path": "github.com/open-telemetry/opentelemetry-collector-contrib",
    "Main": true,
    "Dir": "/Users/me/go/opentelemetry-collector-contrib",
    "GoMod": "/Users/me/go/opentelemetry-collector-contrib/go.mod",
    "GoVersion": "1.16"
}
... much more

关于-e标志,go help list

The -e flag changes the handling of erroneous packages, those that cannot be found or are malformed. [...] With the -e flag, the list command never prints errors to standard error and instead processes the erroneous packages with the usual printing. Erroneous packages will have a non-empty ImportPath and a non-nil Error field; other information may or may not be missing (zeroed).

该错误已在 Go 1.17 中修复。