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 interface{}==nil 的几种坑及原理分析
Apr 24 Golang
Go缓冲channel和非缓冲channel的区别说明
Apr 25 Golang
go 原生http web 服务跨域restful api的写法介绍
Apr 27 Golang
Golang 空map和未初始化map的注意事项说明
Apr 29 Golang
解决Golang time.Parse和time.Format的时区问题
Apr 29 Golang
golang 比较浮点数的大小方式
May 02 Golang
Go timer如何调度
Jun 09 Golang
go语言使用Casbin实现角色的权限控制
Jun 26 Golang
go使用Gin框架利用阿里云实现短信验证码功能
Aug 04 Golang
Go 通过结构struct实现接口interface的问题
Oct 05 Golang
如何解决goland,idea全局搜索快捷键失效问题
Apr 03 Golang
Go gRPC进阶教程gRPC转换HTTP
Jun 16 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处理斐波那契数列非递归方法
2012/02/04 PHP
php和javascript之间变量的传递实现代码
2012/12/19 PHP
深入分析php之面向对象
2013/05/15 PHP
PHP中数据库单例模式的实现代码分享
2014/08/21 PHP
PHP @ at 记号的作用示例介绍
2014/10/10 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
JavaScript入门教程(11) js事件处理
2009/01/31 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
Javascript绝句欣赏 一些经典的js代码
2012/02/22 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
从零开始学习Node.js系列教程二:文本提交与显示方法
2017/04/13 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
Python笔记(叁)继续学习
2012/10/24 Python
利用标准库fractions模块让Python支持分数类型的方法详解
2017/08/11 Python
详解Python的循环结构知识点
2019/05/20 Python
JupyterNotebook设置Python环境的方法步骤
2019/12/03 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
Python实现封装打包自己写的代码,被python import
2020/07/12 Python
利用Python实现最小二乘法与梯度下降算法
2021/02/21 Python
当当网软件测试笔试题
2015/11/24 面试题
Java程序员综合测试题
2014/04/25 面试题
标准自荐信范文
2014/01/29 职场文书
争论的故事教学反思
2014/02/06 职场文书
中级会计职业生涯规划书
2014/03/01 职场文书
教师网络培训感言
2014/03/09 职场文书
激励口号大全
2014/06/17 职场文书
党员四风剖析材料
2014/08/27 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
2015年计算机教师工作总结
2015/07/22 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS