Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >go get私有库提示”410 Gone“ 解决办法

go get私有库提示”410 Gone“ 解决办法

作者头像
用户1392128
发布于 2024-01-08 09:56:42
发布于 2024-01-08 09:56:42
25500
代码可运行
举报
运行总次数:0
代码可运行
问题现象

如果你在用go get 私有库碰到如下类似错误:

410 Gone

解决方法

执行以下命令即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go env -w GOSUMDB=off
go get xxxxxxxxx
原因分析

我们知道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进行包的校验和校验了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Golang-执行go get私有库提示”410 Gone“ 解决办法
关于GO111MODULE 和GOPROXY,都比较熟悉,而GOSUMDB 的说明如下:
coders
2020/02/25
1.8K0
Golang-执行go get私有库提示”410 Gone“ 解决办法
[Golang]包管理
本文是本人在探索 Go 最新的包管理 Go Modules 的一些总结,希望能够更深入了解 Go 最新的包管理方式,以及在实际环境中将它很好的使用起来。
别打名名
2020/07/28
1.8K0
go 版本变化
无效的 DSA 公钥可能会导致 dsa.Verify 出现故障。特别是,在精心制作的 X.509 证书链上使用 crypto/x509.Verify 可能会导致 panic, 即使证书没有链接到受信任的根。可以通过 crypto/tls 连接将链交付给客户端, 或者接受和验证客户端证书的服务器。会通过 HTTPS 服务器使 net/http 客户端崩溃, 而接受客户端证书的 net/http 服务器将恢复 panic 并且不受影响。
solate
2019/11/07
1.2K0
2019年8月29日 Go生态洞察:模块镜像和校验和数据库的发布
大家好,我是猫头虎,一位热衷于探索Go语言生态的技术博主。今天,我要分享一则激动人心的消息:Go的模块镜像和校验和数据库现已正式上线!这将极大改善Go 1.13模块用户的体验。在这篇文章中,我将深入探讨这些新功能并解析它们如何优化我们的Go编程实践。
猫头虎
2024/04/08
1480
2019年8月29日 Go生态洞察:模块镜像和校验和数据库的发布
Go:如何处理模块校验错误,以checksum mismatch为例
在 Go 开发中,使用 go mod tidy 或 go get 等命令下载依赖时,有时会遇到如下错误:
运维开发王义杰
2024/05/29
1.3K0
Go:如何处理模块校验错误,以checksum mismatch为例
关注你所关注的 - Golang社区调研报告
Golang语言可以说现在炙手可热,大家熟悉的Kubernates 就是使用Golang开发的。
JFrog杰蛙科技
2019/12/20
6630
Go版本管理--go.sum
为了确保一致性构建,Go引入了go.mod文件来标记每个依赖包的版本,在构建过程中go命令会下载go.mod中的依赖包,下载的依赖包会缓存在本地,以便下次构建。
冬夜先生
2021/09/03
5250
Go Modules 终极入门
Go modules 是 Go 语言中正式官宣的项目依赖解决方案,Go modules(前身为vgo)于 Go1.11 正式发布,在 Go1.14 已经准备好,并且可以用在生产上(ready for production)了,Go 官方也鼓励所有用户从其他依赖项管理工具迁移到 Go modules。
madneal
2020/03/10
2K0
Go Modules 终极入门
安装go语言环境
如果环境中已经存在预装的其他版本的go,又想优先使用新安装的版本。那么可以把/usr/local/go/bin添加到PATH的前面
willsiom
2024/02/19
2170
干货满满的 Go Modules 和 goproxy.cn
大家好,我是一只普通的煎鱼,周四晚上很有幸邀请到 goproxy.cn 的作者 @盛傲飞(@aofei) 到 Go 夜读给我们进行第 61 期 《Go Modules、Go Module Proxy 和 goproxy.cn》的技术分享。
madneal
2019/11/28
1.3K0
Go 1.13 相比 Go 1.12 有哪些值得注意的改动?
Go 1.13 带来了一系列语言、工具链、运行时和标准库的改进。以下是一些值得开发者关注的重点改动:
Piper破壳
2025/04/23
600
GO依赖管理,看这篇就够了
Golang在项目早期只是单纯的使用GoPath进行依赖管理,但是GoPath无法管理同一个依赖的不同版本,并且由于把所有的依赖都放在同一个路径下,对于多项目的依赖管理非常不方便,于是增加了vendor,运行把依赖和项目放在一起,但是依旧没有解决版本问题,导致依赖关系不清楚,升级困难。在这段期间,也出现了很多第三方依赖管理工具,有点百家争鸣的意思。 直到Go 1.11官方才推出了依赖管理工具Go Module,才统一了六国,正式进入了“书同文 车同轨”的时代。
公众号 云舒编程
2024/02/21
7040
GO依赖管理,看这篇就够了
为什么GOPROXY对Golang开发如此重要
从Go 1.13开始,Go Module作为Golang中的标准包管理器,在安装时自动启用,并附带一个默认的GOPROXY。
JFrog杰蛙科技
2020/06/02
3.1K0
为什么GOPROXY对Golang开发如此重要
Go Modules知识点总结
起初Go语言在1.5之前没有依赖管理工具,若想引入依赖库,需要执行go get命令将代码拉取放入GOPATH/src目录下,作为GOPATH下的全局依赖,这也就意味着没有版本控制及隔离项目的包依赖;
Golang梦工厂
2023/02/26
8880
Go Modules知识点总结
Go语言笔记----GoMoudle
将你的包或者别人的包全部放在 $GOPATH/src 目录下进行管理的方式,我们称之为 GOPATH 模式。
大忽悠爱学习
2022/05/10
6120
Go语言笔记----GoMoudle
Go语言基本环境变量与依赖管理
最近开始系统学习一下Golang这么新语言,记录一下它的基本环境变量配置以及依赖管理方式。编写本文的时候使用的Golang版本为go1.13.5 windows/amd64,其他版本不一定保证适合本文的内容。因为习惯,可能有时候把Go语言称为Go,有时候称为Golang。
Throwable
2020/06/23
9.3K1
Go 语言开发环境搭建
如果提示没有权限,加上sudo以root用户的身份再运行。执行完就可以在/usr/local/下看到go目录了。
贾维斯Echo
2023/10/18
7730
Go 语言开发环境搭建
Go 模块--开始使用Go Modules
Go的1.11和1.12版本包括对模块--新的Go依赖管理系统的初步支持,使依赖版本信息变得明确且更易于管理。这篇博客文章介绍了开始使用模块所需的基本操作。
KevinYan
2020/01/14
2.6K0
2019年9月3日 Go生态洞察:Go 1.13的发布
大家好,我是猫头虎,今天我要带大家深入探索Go 1.13的新特性。这个版本不仅引入了模块镜像和校验和数据库的默认使用,还包括了数字字面量的改进、错误包装、默认开启的TLS 1.3,以及对模块支持的增强。这篇文章将是你了解Go 1.13的绝佳搜索词条!
猫头虎
2024/04/08
1170
2019年9月3日 Go生态洞察:Go 1.13的发布
Go Modules:Go语言依赖管理的新篇章
自从Go 1.11版本引入以来,Go Modules 已经成为了Go语言依赖管理的标准。接下来,我将用简单易懂的语言,带你一步步了解Go Modules的安装、使用和最佳实践。
南山竹
2024/06/06
4500
Go Modules:Go语言依赖管理的新篇章
相关推荐
Golang-执行go get私有库提示”410 Gone“ 解决办法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验