转到模块:校验和不匹配

I recently started using modules in Go, but I frequently encounter issues where everything works fine on one machine, but a checksum mismatch is encountered when building the codebase on another machine.

The issue always concerns the same third party dependency (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=

I've tried various things: removing & regenerating go.sum, upgrading Go itself to the latest patch version and removing the dependency from go.mod but nothing seems to fix this issue.

Does anyone have an idea how to fix this issue?

3个回答

Which version of Go are you using? There's a good chance you're running into the aftermath of the 1.11.2 -> 1.11.4:

Which still isn't completely resolved. Remember that go mod is still in development, so things like this will probably happen up and until 1.13.

Be sure to read up on minor releases for Go, and how these things can happen: https://github.com/golang/go/wiki/MinorReleases

TL;DR - Upgrade Go

doubao6681
doubao6681 我将Heroku的设置更改为使用1.11.4,看来我的问题已解决。 非常感谢!
接近 2 年之前 回复
dongqiao8421
dongqiao8421 感谢您的答复。 实际上,我使用的是11.1(我假设是11.1.0)。 我已经对Go的早期版本中的问题有所了解,所以昨天我在本地更新为11.1.4。 这似乎并没有改变问题:但是,我认为像Heroku这样的平台仍然使用较旧的go 11.1.0。
接近 2 年之前 回复



您可以先运行 go clean -modcache </ code>,然后运行 go mod tidy </ code>, 重新下载所有具有正确校验和的部门。</ p>
</ div>

展开原文

原文

You can run go clean -modcache and then go mod tidy which will re-download all deps with the correct checksum.

doukao8851
doukao8851 我认为您可以在$ GOPATH / pkg / mod中搜索缓存文件夹中的版本并将其删除。
大约一年之前 回复
dongza5150
dongza5150 我按照此步骤操作,并清理了-modcache。 然后我浪费了我的1个小时再次下载依赖项。 :(需要一个更好的解决方案。
大约一年之前 回复
dse55384
dse55384 可能在该存储库中发生了历史重写提交,从而更改了校验和。
大约一年之前 回复
dongpo2014
dongpo2014 我不知道那是怎么发生的,但是那些命令可以解决它。 谢谢!
一年多之前 回复
dongshi1966
dongshi1966 这为我解决了。 运行这些命令后,我在go.sum文件中使用了不同的哈希值。 我将其提交给版本控制,神奇的是我的CI振奋了:-)
一年多之前 回复



我在使用1.12.8时遇到了同样的问题,没有缓存清理功能会有所帮助。 原来,我仍然处于GOPATH和Mod世界的中间。 我在另一篇文章中找到了一个标志(如何从Dep迁移 </ p>

 开始运行-mod = vendor main.go 
</ code> </ pre>
</ DIV>

展开原文

原文

I was having the same problem using 1.12.8 and no cache cleaning would help. Turns out I am still locked in the middle of GOPATH and the Mod world. I found a flag in another post (How do I migrate from Dep to Go Modules) that did the trick for me.

go run -mod=vendor main.go

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问