如何解决 go get golang.org/x 包失败问题

问题:
当我们使用 go get、go install、go mod 等命令时,会自动下载相应的包或依赖包。但由于众所周知的原因,类似于 golang.org/x/… 的包会出现下载失败的情况。如下所示:

$ go get -u golang.org/x/sysgo 
  get golang.org/x/sys: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

解决方法:
使用GOPROXY。
从 Go 1.11 版本开始,官方在支持 go module 包依赖管理工具的同时还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法科学上网的开发良民来说是最大的福音。
更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务地址 https://goproxy.io,使用方法:

#配置GOPROXY
 vim ~/.bashrc
  #go
  export GO111MODULE=on
  export GOPROXY=https://goproxy.io

source ~/.bashrc

#重新安装
go get -u github.com/go-ego/riot

yan 19.6.3

发表评论

电子邮件地址不会被公开。