本文主要是介绍Go依赖问题go get: xx@v1.0.1: Get “https://proxy.golang.org/xx“: dial tcp 172.217.27.145:443: i/o timeout,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Go开始开发时,在国内目前基本都会 遇到依赖下载不了的问题,类似这样:
go get: git.iglou.eu/Imported/go-wildcard@v1.0.1: Get “https://proxy.golang.org/git.iglou.eu/%21imported/go-wildcard/@v/v1.0.1.info”: dial tcp 172.217.27.145:443: i/o timeout
这是因为,Go 1.13 的发布后,为 Go 带来了不少变化(详见:https://golang.org/doc/go1.13 )。其中,Go modules 的扶正就是这次 Go 1.13 发布中开发者能直接感觉到的最大变化。
Go modules 最早发布于 Go 1.11,随着 Go modules 一起被发布的还有一个叫做 Module proxy protocol 的协议,通过它我们可以搭建 Go 模块代理,最后交由 GOPROXY 环境变量以指引 go 命令后续在抓取模块时的途径。
GOPROXY的值是一个以英文逗号 “,” 分割的 Go module proxy 列表,作用是用于使 Go 在后续拉取模块版本时能够脱离传统的 VCS 方式从镜像站点快速拉取。对于开发者来说,一个优秀的 Go 模块代理可以帮助我们解决很多问题,比如依赖无法直接下载时,如果有个代理可以帮助我们,那必定事半功倍。
但是GOPROXY拥有一个默认:https://proxy.golang.org,direct,而且很可惜 proxy.golang.org 在中国无法访问。这也是我们依赖下载时一直timeout的原因。
既然原因已知,是否有替代方案呢。答案是肯定的。官方不可以,我们目前可以用七牛云专门为咱们中国开发者而打造了一个 Go 模块代理:goproxy.cn。(ps:这个怎么也不能少了阿里云,阿里云也提供了类似的模块代理mirrors.aliyun.com/goproxy。我试了七牛的,速度很快,阿里的就当做备选了。参考文章https://studygolang.com/topics/9994)
接下来就是看如何设置了。很简单,可以执行语句
go env -w GOPROXY=https://goproxy.cn,direct
这样就可以顺畅的接口Go开发时的依赖问题了。(也是头疼了半天,才发现这个问题。。。。)
这篇关于Go依赖问题go get: xx@v1.0.1: Get “https://proxy.golang.org/xx“: dial tcp 172.217.27.145:443: i/o timeout的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!