为什么围棋会失败"invalid version: unknown revision"?



我发布了Go模块的更新,将版本提升到v1.0。我创建了一个名为v1.1.0的标签,并将该标签推送到GitHub。

https://github.com/depp/bytesize/releases/tag/v1.1.0

但是,我不能在其他项目中使用此包。我得到一个错误,说:;无效版本:未知修订v1.1.0";。我不知道为什么修订是";"未知";,因为它被标记了。

$ go get github.com/depp/bytesize@v1.1.0                    
go: downloading github.com/depp/bytesize v1.1.0
go get github.com/depp/bytesize@v1.1.0: github.com/depp/bytesize@v1.1.0: verifying module: github.com/depp/bytesize@v1.1.0: reading https://sum.golang.org/lookup/github.com/depp/bytesize@v1.1.0: 410 Gone
server response: not found: github.com/depp/bytesize@v1.1.0: invalid version: unknown revision v1.1.0
[Exit: 1]

该标记在调用go get一次后被推送,导致Go模块代理缓存中毒。

发件人https://proxy.golang.org/:

请注意,如果有人在推送标记之前请求了版本,则镜像的缓存可能需要长达30分钟的时间才能过期,并且有关版本的新数据才能可用。

在缓存过期之前解决此问题的方法是使用GOPRIVATE环境变量来指示go get绕过缓存直接获取此模块。

发件人https://golang.org/cmd/go/:

GOPRIVATE、GONOPROXY、GONOSUMDB

逗号分隔的glob模式列表(在Go的path.Match语法中(应始终直接获取的模块路径前缀的或者不应将其与校验和数据库进行比较。

解决方法是:

$ GOPRIVATE=github.com/depp/bytesize go get github.com/depp/bytesize@v1.1.0

请注意,如果您已经在使用GOPRIVATE,您将希望添加模块,而不是完全覆盖该值。

尝试使用:

export GOSUMDB=off

它也适用于我的错误:

verifying module: invalid GOSUMDB: malformed verifier id

充其量只是轶事证据,但直接更新go.mod文件并运行go mod tidy对我有效,而其他答案都没有。

➜  cli git:(main) ✗ go get github.com/opencamp-hq/core@0.2.3
go: github.com/opencamp-hq/core@0.2.3: invalid version: unknown revision 0.2.3
➜  cli git:(main) ✗ GOPRIVATE=github.com/opencamp-hq/core go get github.com/opencamp-hq/core@0.2.3
go: github.com/opencamp-hq/core@0.2.3: invalid version: unknown revision 0.2.3
➜  cli git:(main) ✗ GOSUMDB=off go get github.com/opencamp-hq/core@0.2.3 
go: github.com/opencamp-hq/core@0.2.3: invalid version: unknown revision 0.2.3
... edited go.mod ...
➜  cli git:(main) ✗ go mod tidy
go: downloading github.com/opencamp-hq/core v0.2.3

最新更新