golang gopm get -g -v 无法获取第三方库的解决方案


Posted in Golang onMay 05, 2021

gopm get -g -v golang.org/x/text

//网络不通
[GOPM] ?[36m03-14 07:36:49?[0m [?[31mERROR?[0m] golang.org/x/text: fail to make request: Get https://gopm.io/api/v1/revision?pkgname=golang.org/x/text: dial tcp: look
up gopm.io: getaddrinfow: This is usually a temporary error during hostname resolution and means that the local server did not receive a response from an authoritativ
e server.

解决方法

cd ~/goPath/src/golang.org/x
git clone https://github.com/golang/text.git

补充:GOPROXY:解决 go get golang.org/x 包失败

问题现象

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

package golang.org/x/tools/cmd/goimports/...: unrecognized import path "golang.org/x/tools/cmd/goimports"

(https fetch: Get https://golang.org/x/tools/cmd/goimports?go-get=1:

dial tcp 216.239.37.1:443: connectex: A connection attempt failed

because the connected party did not properly respond after a period of time,

or established connection failed because connected host has failed to respond.)

问题解决:

GOPROXY

我们知道从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。

其实还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址,而不再是以前的直接从代码库下载。这无疑对我等无法科学上网的开发良民来说是最大的福音。

更可喜的是,goproxy.io 这个开源项目帮我们实现好了我们想要的。该项目允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io,我们只需设置该环境变量即可正常下载被墙的源码包了:

Go 版本>=1.11 设置GOPROXY

在 Linux 或 macOS 上面,需要运行下面命令:

Bash / 复制

# 启用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.io

或者,可以把上面的命令写到 .bashrc 或 .bash_profile 文件当中。

在 Windows 上,需要运行下面命令:

PowerShell 复制

# 启用 Go Modules 功能
$env:GO111MODULE="on"
# 配置 GOPROXY 环境变量
$env:GOPROXY=https://goproxy.io

现在,当你构建或运行你的应用时,Go 将会通过 goproxy.io 获取依赖。更多信息请查看 goproxy 仓库

Go 版本>=1.13 设置GOPROXY

如果你使用的 Go 版本>=1.13, 你可以通过设置 GOPRIVATE 环境变量来控制哪些私有仓库和依赖(公司内部仓库)不通过 proxy 来拉取,直接走本地,设置如下:

Go version >= 1.13 复制

go env -w GOPROXY=https://goproxy.io,direct
# 设置不走 proxy 的私有仓库,多个用逗号相隔
go env -w GOPRIVATE=*.corp.example.com

七牛云 goproxy.cn

goproxy.io 提供了一个开源的解决方案允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io,而七牛云也出了个国内代理 goproxy.cn 方便国内用户更快的访问

$ go env -w GO111MODULE=on            
$ go env -w GOPROXY=https://goproxy.cn,direct

阿里云Go Module代理

go module公共代理仓库,代理并缓存go模块。你可以利用该代理来避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建

地址

https://mirrors.aliyun.com/goproxy/

使用

1.使用go1.11以上版本并开启go module机制

2.导出GOPROXY环境变量

export GOPROXY=https://mirrors.aliyun.com/goproxy/

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Golang 相关文章推荐
Go 实现英尺和米的简单单位换算方式
Apr 29 Golang
解决go在函数退出后子协程的退出问题
Apr 30 Golang
golang 比较浮点数的大小方式
May 02 Golang
完美解决golang go get私有仓库的问题
May 05 Golang
go mod 安装依赖 unkown revision问题的解决方案
May 06 Golang
Go 在 MongoDB 中常用查询与修改的操作
May 07 Golang
Go timer如何调度
Jun 09 Golang
golang实现一个简单的websocket聊天室功能
Oct 05 Golang
一文搞懂Golang 时间和日期相关函数
Dec 06 Golang
golang连接MySQl使用sqlx库
Apr 14 Golang
Golang 实现WebSockets
Apr 24 Golang
在ubuntu下安装go开发环境的全过程
Aug 05 Golang
go类型转换及与C的类型转换方式
May 05 #Golang
Golang: 内建容器的用法
May 05 #Golang
Go标准容器之Ring的使用说明
May 05 #Golang
go语言中GOPATH GOROOT的作用和设置方式
go设置多个GOPATH的方式
May 05 #Golang
浅谈golang 中time.After释放的问题
May 05 #Golang
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
May 05 #Golang
You might like
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
PHP7原生MySQL数据库操作实现代码
2020/07/03 PHP
jQuery ajax在GBK编码下表单提交终极解决方案(非二次编码方法)
2010/10/20 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
koa2 用户注册、登录校验与加盐加密的实现方法
2019/07/22 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
2019/09/26 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
Python操作MySQL数据库9个实用实例
2015/12/11 Python
目前最全的python的就业方向
2018/06/05 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python循环结构的应用场景详解
2019/07/11 Python
Windows下python3安装tkinter的问题及解决方法
2020/01/06 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
python 模块导入问题汇总
2021/02/01 Python
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
小学门卫岗位职责
2013/12/17 职场文书
西式结婚主持词
2014/03/14 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年电教工作总结
2014/12/19 职场文书
2015年团队工作总结范文
2015/05/04 职场文书
南京大屠杀观后感
2015/06/02 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
Java字符缓冲流BufferedWriter
2022/04/09 Java/Android