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 21 Golang
Go缓冲channel和非缓冲channel的区别说明
Apr 25 Golang
用golang如何替换某个文件中的字符串
Apr 25 Golang
golang通过递归遍历生成树状结构的操作
Apr 28 Golang
解决Go gorm踩过的坑
Apr 30 Golang
Golang全局变量加锁的问题解决
May 08 Golang
Golang二维数组的使用方式
May 28 Golang
浅谈Go语言多态的实现与interface使用
Jun 16 Golang
试了下Golang实现try catch的方法
Jul 01 Golang
Go语言的协程上下文的几个方法和用法
Apr 11 Golang
Golang 结构体数据集合
Apr 22 Golang
Go中使用gjson来操作JSON数据的实现
Aug 14 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开发文件系统实例讲解
2006/10/09 PHP
php 输出双引号"与单引号'的方法
2010/05/09 PHP
深入分析php中接口与抽象类的区别
2013/06/08 PHP
php图片缩放实现方法
2014/02/20 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
php生成rss类用法实例
2015/04/14 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
PHP观察者模式实例分析【对比JS观察者模式】
2019/05/22 PHP
编辑浪子版表单验证类
2007/05/12 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
使用vue实现点击按钮滑出面板的实现代码
2017/01/10 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
vue项目中极验验证的使用代码示例
2019/12/03 Javascript
[37:35]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第二局
2016/02/25 DOTA
python中根据字符串调用函数的实现方法
2016/06/12 Python
Python中join函数简单代码示例
2018/01/09 Python
解决echarts中饼图标签重叠的问题
2020/05/16 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
Pycharm调试程序技巧小结
2020/08/08 Python
python raise的基本使用
2020/09/10 Python
python中doctest库实例用法
2020/12/31 Python
python 制作网站筛选工具(附源码)
2021/01/21 Python
利用CSS3的定位页面元素
2009/08/29 HTML / CSS
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
智能钱包:Ekster
2019/11/21 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
资料员岗位职责
2013/11/17 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸