去模块:校验和不匹配

edw*_*dmp 5 go go-modules

我最近开始在Go中使用模块,但是我经常遇到一台机器上一切正常的问题,但是在另一台机器上构建代码库时遇到校验和不匹配.

该问题始终涉及相同的第三方依赖关系(github.com/ericlagergren/decimal):

go: verifying github.com/ericlagergren/decimal@v0.0.0-20181231230500-73749d4874d5: checksum mismatch
    downloaded: h1:HQGCJNlqt1dUs/BhtEKmqWd6LWS+DWYVxi9+Jo4r0jE=
    go.sum:     h1:x4oNpFLLl+8l+iLgksNHzZewTS0SKp6m0hlLwzXRbqA=
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的东西:删除和重新生成go.sum,升级Go自己到最新的补丁版本并删除依赖,go.mod但似乎没有解决这个问题.

有谁知道如何解决这个问题?

syn*_*aqx 11

您使用的是哪个版本的Go?您很可能遇到以下情况1.11.2 -> 1.11.4:

哪个还没有完全解决.请记住,这go mod仍然在开发中,所以这样的事情可能会发生,直到1.13.

一定要对围棋次要版本读了,这些东西怎么可能发生:https://github.com/golang/go/wiki/MinorReleases

TL; DR - 升级Go


Ale*_*mov 9

您可以运行go clean -modcache,然后go mod tidy它将使用正确的校验和重新下载所有dep。

  • 我按照步骤清理了“-modcache”。然后我浪费了1个小时再次下载依赖项。:( 需要一个更好的解决方案。 (2认同)
  • 为了避免长时间下载,可以从“go.sum”中删除校验和不匹配的 mod 条目并运行“go mod tidy”,这只会更新该模块的校验和! (2认同)

小智 5

  1. 删除 go.sum : rm go.sum
  2. 重新生成 go.sum : go mod tidy