Golang执行go get私有库提示"410 Gone" 的问题及解决办法
之前没有使用过私有库,今天正好碰到,把解决方法整理一下
错误记录
如果你在用go get 私有库碰到如下类似错误:
解决方法
$ export GO111MODULE=on $ export GOPROXY=direct $ export GOSUMDB=off
关于GO111MODULE 和GOPROXY,都比较熟悉,而GOSUMDB 的说明如下:
我们知道go会在go module启用时在本地建立一个go.sum文件,用来存储依赖包特定版本的加密校验和。同时,Go维护下载的软件包的缓存,并在下载时计算并记录每个软件包的加密校验和。在正常操作中,go命令对照这些预先计算的校验和去检查某repo下的go.sum文件,而不是在每次命令调用时都重新计算它们。
在日常开发中,特定module版本的校验和永远不会改变。每次运行或构建时,go命令都会通过本地的go.sum去检查其本地缓存副本的校验和是否一致。如果校验和不匹配,则go命令将报告安全错误,并拒绝运行构建或运行。在这种情况下,重要的是找出正确的校验和,确定是go.sum错误还是下载的代码是错误的。如果go.sum中尚未包含已下载的module,并且该模块是公共module,则go命令将查询Go校验和数据库以获取正确的校验和数据存入go.sum。如果下载的代码与校验和不匹配,则go命令将报告不匹配并退出。
Go 1.13提供了GOSUMDB环境变量用于配置Go校验和数据库的服务地址(和公钥),其默认值为”sum.golang.org”,这也是Go官方提供的校验和数据库服务(大陆gopher可以使用sum.golang.google.cn)。
出于安全考虑,建议保持GOSUMDB开启。但如果因为某些因素,无法访问GOSUMDB(甚至是sum.golang.google.cn),可以通过下面命令将其关闭:
go env -w GOSUMDB=off
GOSUMDB关闭后,仅能使用本地的go.sum进行包的校验和校验了。
参数考文章:https://github.com/golang/go/issues/35164
https://tonybai.com/2019/10/27/some-changes-in-go-1-13/
知识点补充:
go get超时解决办法
go get gopkg.in/yaml.v2超时,发现被墙了,解决办法如下:
1、安装golang.org/x/net
$ mkdir -p $GOPATH/src/golang.org/x/ $ git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net $ go install net
2、安装gopkg.in/yaml.v2
$ go get gopkg.in/yaml.v2
总结
以上就是Golang执行go get私有库提示"410 Gone" 的问题及解决办法的详细内容,更多关于go get私有库的资料请关注我们其它相关文章!
相关推荐
-
Go语言中利用http发起Get和Post请求的方法示例
关于 HTTP 协议 HTTP(即超文本传输协议)是现代网络中最常见和常用的协议之一,设计它的目的是保证客户机和服务器之间的通信. HTTP 的工作方式是客户机与服务器之间的 "请求-应答" 协议. 客户端可以是 Web 浏览器,服务器端可以是计算机上的某些网络应用程序. 通常情况下,由浏览器向服务器发起 HTTP 请求,服务器向浏览器返回响应.响应包含了请求的状态信息以及可能被请求的内容. Go 语言中要请求网页时,使用net/http包实现.官方已经提供了详细的说明,但是比较粗略,
-
Go语言服务器开发实现最简单HTTP的GET与POST接口
本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口.分享给大家供大家参考.具体分析如下: Go语言提供了http包,可以很轻松的开发http接口.以下为示例代码: 复制代码 代码如下: package webserver import ( "encoding/json" "fmt" "net/http" "time" ) func WebServerB
-
利用dep代替go get获取私有库的方法教程
前言 go get 用来动态获取远程代码包的,目前支持的有BitBucket.GitHub.Google Code和Launchpad.这个命令在内部实际上分成了两步操作:第一步是下载源码包,第二步是执行go install.下载源码包的go工具会自动根据不同的域名调用不同的源码工具,对应关系如下: BitBucket (Mercurial Git) GitHub (Git) Google Code Project Hosting (Git, Mercurial, Subversion) Lau
-
对Django 中request.get和request.post的区别详解
Django 中request.get和request.post的区别 POST和GET差异: POST和GET是HTTP协议定义的与服务器交互的方法.GET一般用于获取/查询资源信息,而POST一般用于更新资源信息.另外,还有PUT和DELETE方法. POST和GET都可以与服务器完成查,改,增,删操作. GET提交,请求的数据会附在URL之后,以?分割URL和传输数据,多个参数用&连接: POST提交,把提交的数据放置在HTTP包的包体中:因此,GET提交的数据会在地址栏中显示出来,而PO
-
$_GET['goods_id']+0 的使用详解
目的: 为了防止sql注入,tid,goods_id都是正整数类型,防止人为了在后面追加 ?tid=1 or 1 这样的语句.原理: 不管你的参数多么险恶,+0后都老老实实变成数值类型 比如 '?tid=1 or 1' , $_GET['tid']+0 后值变成1; 有学生问,你为什么不用(int)强转或intval来转换.1: 用哪种方式,目的都是一样的2: 用+0,只需要打2个字符,用(int)要打5个,intval()要打8个.3: 对于+0,我不需要关心$tid是整型还是浮点型,还是大于
-
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
前言 本文主要介绍的是关于Django objects.all().objects.get()与objects.filter()直接区别的相关内容,文中介绍的非常详细,需要的朋友们下面来一起看看详细的介绍: 示例代码 ret=UserInfo.objects.all() all返回的是QuerySet对象,程序并没有真的在数据库中执行SQL语句查询数据,但支持迭代,使用for循环可以获取数据. ret=UserInfo.objects.get(id='1') get返回的是Model对象,类型为
-
Golang执行go get私有库提示"410 Gone" 的问题及解决办法
之前没有使用过私有库,今天正好碰到,把解决方法整理一下 错误记录 如果你在用go get 私有库碰到如下类似错误: 解决方法 $ export GO111MODULE=on $ export GOPROXY=direct $ export GOSUMDB=off 关于GO111MODULE 和GOPROXY,都比较熟悉,而GOSUMDB 的说明如下: 我们知道go会在go module启用时在本地建立一个go.sum文件,用来存储依赖包特定版本的加密校验和.同时,Go维护下载的软件包的缓存,并在
-
Python用requests库爬取返回为空的解决办法
首先介紹一下我們用360搜索派取城市排名前20. 我们爬取的网址:https://baike.so.com/doc/24368318-25185095.html 我们要爬取的内容: html字段: robots协议: 现在我们开始用python IDLE 爬取 import requests r = requests.get("https://baike.so.com/doc/24368318-25185095.html") r.status_code r.text 结果分析,我们可以
-
访问php时提示内存位置访问无效的解决办法和思路分析
我们就需要找到是哪一个DLL文件加载出现了问题.排查方法是: 将php.ini中 display_startup_errors = Off 改为display_startup_errors = On . 这是访问php页面,服务器上会弹出php错误的提示对话框,你就可以明确看到是哪一个dll文件加载失败,有时会有多个dll文件加载失败,需要你先分号(;)注释掉php.ini中提示那个dll后继续访问如此反复排查. 把出问题的dll都用分号(;)注释掉后,php就可以正常运行了. 如果加载失败的d
-
Win2003 IIS浏览ASP提示无法找到该页的解决办法
鄙视下自己的,所有说越基础的越容易出问题 昨天LP在Win2003下安装了IIS想要测试一个ASP网站,结果运行时老是提示'无法找到该页',但是浏览html等静态页面是正常的,百思不得其解.我也帮忙调了半天,重新设置目录,改权限都没有用,还是一样的错误. 实在没办法了,上网搜索之,原来是因为IIS6.0中的Web服务扩展有几项是禁止的,把Active Server Pages.WebDAV.在服务器端的包含文件这三项设置为允许就行了,如图: 最后终于是一切正常了~~~ 这里我们简单的总结下解决方
-
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
很多朋友都遇到了Destoon供求栏目下旺旺无法正常显示,点击提醒"会员名不存在"的情况,原因是旺旺更改了在线旺旺的代码,但是Destoon没有及时更新.这时候只需要修改api/im.func.php中第二段旺旺联系的那段: 即将function im_ali($id, $style = 0) 修改成下面的方法即可. function im_ali($id, $style = 0) { return $id ? '<a href="http://amos.im.alis
-
安装rpm包时提示错误:依赖检测失败的解决方法
目录 前言 先试试通用的方法 分情况解决的话! 情况1: 情况2: 情况3: 情况4: 情况5: 情况6: 情况7: 总结 前言 安装的时候,出现#######100%就是安装成功了,命令行检验是否安装成功rpm -qa | grep mysql 如果你成功安装了两个rpm包就会出现两行MySQL-commnity-巴拉巴拉 ,显示出你安装上的 咱安装失败的话就是说 先试试通用的方法 (假设这里是中间段值含有-client-plugins的rpm包没有安装上) 解决办法1,卸载mariadb -
-
golang实践-第三方包为私有库的配置方案
正常使用了go 1.8一段时间没有发现异常,为了发布便捷,以及后期引入plug-in,开始将大项目分解.涉及到通过vendor引入私有库保存的第三方包. 参考网上那些反复转帖的材料,始终无法成功,总是都会出现类似以下的错误: package git.oschina.net/xxx/yyy: unrecognized import path "git.oschina.net/xxx/yyy" (parse https://git.oschina.net/xxx/yyy?go-get=1:
-
Docker 彻底删除私有库镜像的操作
首先看看网上一般的做法 私有库默认是不支持删除镜像的,需要修改config.yml配置文件,在storage节点下加入 delete: enabled: true ,然后重启私有库. docker 提供的镜像删除api为: DELETE ip:端口/v2/<repository>/manifests/<reference> repository 为镜像的repository reference 为镜像push成功后生成的 digest:sha256 值 获取 digest : cu
-
docker私有库的搭建实现
安装部署一个私有的Docker Registry是引入.学习和使用Docker这门技术的必经之路之一.尤其是当Docker被所在组织接受,更多人.项目和产品开始接触和使用Docker时,存储和分发自制的Docker image便成了刚需.Docker Registry一如既往的继承了"Docker坑多"的特点,为此这里将自己搭建"各类"Registry过程中执行的步骤.遇到的问题记录下来,为己备忘,为他参考. Registry2在镜像存储方面不仅支持本地盘,还支持诸
随机推荐
- 在Ruby中利用Net::SMTP类发送电子邮件的教程
- angular.js+node.js实现下载图片处理详解
- Aspose.Cells 读取受保护有密码的Excel文件
- Python标准库之随机数 (math包、random包)介绍
- 使用Python进行稳定可靠的文件操作详解
- c# 控件截图的简单实例
- php实现的短网址算法分享
- 根据中文裁减字符串函数的php代码
- Ruby Gems更换淘宝源方法
- 深入了解MongoDB是如何存储数据的
- Python使用Redis实现作业调度系统(超简单)
- input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
- Java Web使用简单的批处理操作(记事本+Tomcat)
- 保存和配置系统硬件注册信息—注册表使用全攻略之十二
- win2003安装sp1密钥无效的处理方法
- Web版彷 Visual Studio 2003 颜色选择器
- c#冒泡排序算法示例
- 探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释
- 浅谈Java中ABA问题及避免
- vue.js获得当前元素的文字信息方法