Go 解决国内下载 go get golang.org/x 包失败 非原创
GOPROXY 环境变量
我们知道从 Go 1.11
版本开始,官方支持了 go module
包依赖管理工具。
其实还新增了 GOPROXY
环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法科学上网的开发良民来说是最大的福音。
更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY
代理服务。同时,也提供了公用的代理服务 https://goproxy.io
,我们只需设置该环境变量即可正常下载被墙的源码包了:
export GOPROXY=https://goproxy.io
不过,需要依赖于 go module
功能。可通过 export GO111MODULE=on
开启 MODULE。
如果项目不在 GOPATH
中,则无法使用 go get ...
,但可以使用 go mod ...
相关命令。
也可以通过置空这个环境变量来关闭,export GOPROXY=
。
对于 Windows 用户,可以在 PowerShell
中设置:
$env:GOPROXY = "https://goproxy.io"
最后,我们当然推荐使用 GOPROXY
这个环境变量的解决方式,前提是 Go version >= 1.11。
说明
本文非原创,因为依赖的问题,困扰我三天左右(现阶段我就晚上捣鼓go,白天有其它工作),通过 google 在网上找到一篇帖子,也就是上面的内容,配置 GOPROXY 之后,相关依赖都下载成功。之所以把内容贴过来,是因为国内可能无法访问该网页… 原帖内容不止这一个方法,但那些方法国内的帖子都有出现过,只有上文解决方法,我尚未遇到发现,原文地址:一键解决 go get golang.org/x 包失败
感谢走在前面的人 格物
要是还是下载不来包,控制台执行下面这条语句:
go env -w GOPROXY=https://goproxy.cn,https://gocenter.io,https://goproxy.io,direct
本作品采用《CC 协议》,转载必须注明作者和本文链接
求教现在 GO 的包管理还像当初那样的不堪么
这个简直太爽了,,,比其他什么花里胡哨的操作和设置都要简单,而且速度超级快,,,唯一缺点就是只支持 module 吧,,,
我想请教下这个真的就是只是代理么,我自己写的包,开启gomodule,go get 死活都下载不了
Windows下为什么设置后还是失败
gopm了解下