我有一个 go 项目,当我这样做时
go build
我从 Golang 加密包中收到以下校验和错误:
% go build cmd/myproject/main.go
go: downloading github.com/golang-jwt/jwt v4.5.1+incompatible
verifying golang.org/x/[email protected]: checksum mismatch
downloaded: h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U=
go.sum: h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
SECURITY ERROR
This download does NOT match an earlier download recorded in go.sum.
The bits may have been replaced on the origin server, or an attacker may
have intercepted the download attempt.
For more information, see 'go help module-auth'.
make: *** [build] Error 1
为什么我会收到此错误?我上周运行了同样的命令,它运行良好,没有任何问题。我注意到Golang加密包的0.31.0版本刚刚于2024年12月11日(5天前)发布。所以这个时机让我怀疑该软件包中的某些内容在新版本中被破坏了?
我删除了我的
go.sum
文件,然后执行 go get [email protected]
来查看降级到旧版本的软件包是否有效。但随后 go build
抱怨缺少 go.sum
文件。老实说,我并不完全理解 go.mod 和 go.sum 文件是如何工作的。
如果您可以提供更多上下文,尤其是您的代码,那么回答会更容易。但根据您提供的内容,您的 go 模块似乎存在一些问题。要解决这个问题,您可以尝试删除 go.mod,然后运行
go mod init 'YourModuleName'
go mod vendor
任何损坏的软件包问题都可以通过运行这些命令来解决。