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
用golang如何替换某个文件中的字符串
Apr 25 Golang
golang中实现给gif、png、jpeg图片添加文字水印
Apr 26 Golang
解决Golang time.Parse和time.Format的时区问题
Apr 29 Golang
golang DNS服务器的简单实现操作
Apr 30 Golang
golang协程池模拟实现群发邮件功能
May 02 Golang
goland设置颜色和字体的操作
May 05 Golang
Go标准容器之Ring的使用说明
May 05 Golang
go web 预防跨站脚本的实现方式
Jun 11 Golang
golang内置函数len的小技巧
Jul 25 Golang
Golang数据类型和相互转换
Apr 12 Golang
Golang 并发编程 SingleFlight模式
Apr 26 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获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
简单了解将WordPress中的工具栏移到底部的小技巧
2015/12/31 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
php添加数据到xml文件的简单例子
2016/09/08 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
JavaScript设置FieldSet展开与收缩
2009/05/15 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
Python抓取京东图书评论数据
2014/08/31 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python实现文件的分割与合并
2019/08/29 Python
Python 3.6 中使用pdfminer解析pdf文件的实现
2019/09/25 Python
python实现12306登录并保存cookie的方法示例
2019/12/17 Python
django 装饰器 检测登录状态操作
2020/07/02 Python
Python和Bash结合在一起的方法
2020/11/13 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
One.com挪威:北欧成长最快的网络托管公司
2016/11/19 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
普罗米修斯教学反思
2014/02/06 职场文书
合作经营协议书范本
2014/04/17 职场文书
大学生新学期计划书
2014/04/28 职场文书
公共场所标语
2014/06/30 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
情感电台广播稿
2015/08/18 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书