go get -u golang.org/x/xxx 失败解决方法

问题

由于各种问题,国内使用 go get 安装 golang 官方包可能会失败,如我自己在安装 cobra 时,出现了以下报错:

# go get -u github.com/spf13/cobra/cobra

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

package golang.org/x/text/unicode/norm: unrecognized import path "golang.org/x/text/unicode/norm" (https fetch: Get https://golang.org/x/text/unicode/norm?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)

即使设置了代理goproxy也不行,怎么解决这个问题?


解决方法

其实 golang 在 github 上建立了一个镜像库,如 https://github.com/golang/net 即是 https://golang.org/x/net 的镜像库。例如获取 golang.org/x/net 包,其实只需以下步骤:

# mkdir -p $GOPATH/src/golang.org/x

# cd $GOPATH/src/golang.org/x

# git clone https://github.com/golang/net.git

其它 golang.org/x 下的包获取皆可使用该方法。例如,很多go源码在编译时都要使用golang.org/x/net里面的内容,使用下面方法获取:

# cd $GOPATH/src/golang.org/x

# git clone https://github.com/golang/tools.git

注意,一定要保持git clone获取的https://github.com/golang/package.git,与go getgolang.org/x/package目录结构一致,否则就找不到package了。

发布了224 篇原创文章 · 获赞 635 · 访问量 160万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览