当前位置: 首页 > news >正文

如何解决golang开发中遇到的报错:checksum mismatch downloaded

问题描述

如题,项目开发中遇到如下报错(你的报错信息可能与我的有一点区别,如verifying的包名,但是问题本质都是一样的):

verifying github.com/algorand/go-codec/codec@v1.1.8/go.mod: checksum mismatchdownloaded: h1:YkEx5nmr/zuCeaDYOIhlDg92Lxju8tj2d2NrYqP7g7k=go.sum:     h1:tQ3zAJ6ijTps6V+wp8KsGDnPC2uhHVC7ANyrtkIY0bA=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'.

问题原因

  1. 项目开发时使用go mod进行包管理,而go mod对使用的包有缓存的机制,并且会针对使用的包进行checksum校验,方便区分不同的包版本
  2. go mod管理包的时候,下载源可以自行设置(goproxy),国内开发者对于github上的一些包因为墙的原因,下载速度较慢,多数会采用第三方提供的代理地址进行下载,而每个人使用第三方的代理地址又不一样,第三方的下载的代码源也可能不同
  3. 综上,如果项目组中每个人使用的goproxy不一样,容易出现这个问题,或者只有你自己配置的一开始和其他人不一样,即使后续修改成一样的,这个时候还是会出现这个问题。

解决方法

  1. 如果你的goproxy配置和别人不一样(别人没有这个问题的时候),你需要先修改自己的goproxy和其他人保持一致:
go env -w GOPROXY="填写和他人一致的配置"

注:如果采用goland等之类的编译器开发,还需要注意是否在编译器的设置中进行了相关的设置(我自己就是,命令行修改不生效,因为编译器中进行了额外的配置),如果编译器进行设置也需要同步进行调整,调整方式因编译不同,修改也不同,这里就不介绍了。
2. 完成上述修改后需要先删除项目的go.sum文件

rm -rf go.sum
  1. 执行清理缓存的操作(必须进行,否则go mod还缓存着之前的数据)
go clean -modcache
  1. 完成上述所有操作后,在项目目录下执行:
go mod tidy

至此,就完成了checksum mismatch问题的解决,这个时候你再对比自己的go.sum文件和组内其他人的就是一致的了,如果是个人开发者,后续执行go mod tidy也不会遇到checksum mismatch的问题,如果还遇到可以按照上面的流程再检查下自己的配置。

http://www.lryc.cn/news/230617.html

相关文章:

  • 4.以docker容器生成镜像推送到阿里云镜像仓库
  • CSS Form表单布局
  • c++ shared_mutex 读写锁使用详解
  • 淘宝商品详情接口,淘宝详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,淘宝API接口演示案例
  • python爬取网站数据,作为后端数据
  • 【机器学习】K近邻算法:原理、实例应用(红酒分类预测)
  • 基于安卓android微信小程序的快递取件及上门服务系统
  • leetCode 92.反转链表 II + 图解
  • 【MongoDB】索引 – 通配符索引
  • python安装pip install报错Could not fetch URL https://pypi.org/simple/pip/...更换镜像源
  • C++ 算数运算符 学习资料
  • 问题 H: 棋盘游戏(二分图变式)
  • SQL 主从数据库实时备份
  • C/C++:在#define中使用参数
  • Hive 查询优化
  • 【Java 进阶篇】JQuery 案例:优雅的隔行换色
  • Redis 常用的类型和 API
  • 在qt的设计师界面没有QVTKOpenGLWidget这个类,只有QOpenGLWidget,那么我们如何得到QVTKOpenGLWidget呢?
  • 力扣每日一道系列 --- LeetCode 138. 随机链表的复制
  • 无人零售:创新优势与广阔前景
  • 【华为OD题库-022】阿里巴巴找黄金宝箱(IV)-java
  • Linux 图形界面配置RAID
  • (脏读,不可重复读,幻读 ,mysql5.7以后默认隔离级别)、( 什么是qps,tps,并发量,pv,uv)、(什么是接口幂等性问题,如何解决?)
  • 安全通信网络(设备和技术注解)
  • 深度学习_12_softmax_图片识别优化版代码
  • element-ui设置下拉选择切换必填和非必填
  • Linux的命令——关于操作用户及用户组的命令
  • pycharm 设置多级跳转SSH
  • LeetCode 189.轮转数组(三种方法解决)
  • GB28181设备对接视频流的流程