由于某些不可描述的原因,国内使用go get命令安装某些包的时候会超时导致失败,比如net包、sys包、tools包等。第一种解决办法就是自己从git上下载后添加链接到GOPATH中,比如:

1
2
3
4
5
6
7
8
9
git clone https://github.com/golang/net.git $GOPATH/src/github.com/golang/net

git clone https://github.com/golang/sys.git $GOPATH/src/github.com/golang/sys

git clone https://github.com/golang/tools.git $GOPATH/src/github.com/golang/tools

ln -s $GOPATH/src/github.com/golang $GOPATH/src/golang.org/

cd $GOPATH/src/golang.org/ && mv golang x

另外就是使用代理,网上大多是使用http代理,这里记录下如何使用socket代理。go get命令其实也是利用了git命令进行下载,不过下载后会自动编译安装,所以首先设置git的代理:

1
git config --global http.proxy socks5://127.0.0.1:7070

然后

1
http_proxy=socks5://127.0.0.1:7070 go get xxxx

就可以了。

恢复的话可以重置git配置:

1
git config --global --unset http.proxy