由于国内的网络环境导致在下载依赖 golang.org/x
下的包时一般会出错。
比如 :
https fetch failed: Get https://golang.org/x/tools/go/buildutil?go-get=1: dial tcp 216.239.37.1:443: i/o timeout
一般你可以通过设置代理,如果代理使用了 pac 模式的话,可能需要编辑下 pac 文件。下面要介绍的是一种不代理的解决办法。
原理
当我们使用
import "golang.org/x/tools/go/buildutil"
导入包时,其实导入的是$GOPATH/src/golang.org/x/tools/go/buildutil
目录的包。“golang.org/x” 下的包在 “github.com/golang”有镜像库。
所以我们可以从 github.com 上将对应包下载下来放到对应的目录即可。
实例
比如先切换到 $GOPATH
的 src 目录,cd $GOPATH/src
,然后按需要下载:
git clone --depth 1 https://github.com/golang/tools.git golang.org/x/tools
git clone --depth 1 https://github.com/golang/lint.git golang.org/x/lint
git clone --depth 1 https://github.com/golang/net.git golang.org/x/net
git clone --depth 1 https://github.com/golang/sys.git golang.org/x/sys
git clone --depth 1 https://github.com/golang/crypto.git golang.org/x/crypto
git clone --depth 1 https://github.com/golang/text.git golang.org/x/text
git clone --depth 1 https://github.com/golang/image.git golang.org/x/image
git clone --depth 1 https://github.com/golang/oauth2.git golang.org/x/oauth2