🍌 go mod 小问题排查:SECURITY ERROR go.sum database server misbehavior detected!

最近使用go mod代理下载包的时候遇到个小问题,提示说go mod的包检查Hash不一致的问题,下面是我运行 go mod download [包名] 下包的时候的错误。(使用go mod tidy下包也是一样的结果)

原因

查询大量的资料后,确定的问题所在,go mod 在下载包的时候会检查你下载的包与go官方维护的包的一致性和完整性。go mod 检查Hash一致使用的地址是go环境变量 GOSUMDB 的地址,这个值默认是 sum.golang.org,这个地址在国内目前肯定是被墙了的。

解决

第一种:关闭go mod的hash检查

将环境变量 GOSUMDB 的值设为off,GOSUMDB=off;即可关闭go mod的包hash检查功能,就能够随便下载了。这个方法是100%最快捷的方法 GOSUMDB

第二种:修改GOSUMDB

将环境变量 GOSUMDB 的值设为其它国内的地址,目前我使用的是sum.golang.google.cn

第三种:设置GONOSUMDB

环境变量 GONOSUMDB 可以选择设置某些名称开头包跳过go mod的hash检查,例如: GONOSUMDB=go.uber.org/zap,不过不知道是什么原因,我的mac上没有成功。有兴趣的可以详细参考官方文档,可能有我没有注意的地方。 点我查阅官方文档

🍌 go mod 小问题排查:SECURITY ERROR go.sum database server misbehavior detected!

http://itpika.com/2021/04/25/go/go-mod-sumdb/

作者

itpika

发布于

2021-04-25 14:10:37

更新于

2021-04-25 14:42:50

许可协议

评论