为什么go get失败并显示“invalid version:未知版本”?

dwbf0jvd  于 2023-06-27  发布在  Go
关注(0)|答案(3)|浏览(2256)

我发布了一个Go模块的更新,将版本升级到v1.1.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]
qxsslcnc

qxsslcnc1#

在调用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,您将需要添加模块而不是完全覆盖该值。

7eumitmz

7eumitmz2#

尝试使用:

export GOSUMDB=off

它也适用于我的错误:

verifying module: invalid GOSUMDB: malformed verifier id
acruukt9

acruukt93#

最多是一些轶事证据,但是直接更新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

相关问题