欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Go get命令使用socket代理的方法

程序员文章站 2022-05-25 17:32:03
由于某些不可描述的原因,国内使用 go get 命令安装某些包的时候会超时导致失败,比如 net 包、 sys 包、 tools 包等。第一种解决办法就是自己从git上下载...

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

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的代理:

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

然后

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

就可以了。

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

git config --global --unset http.proxy

go get命令使用socket代理

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

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的代理:

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

然后

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

就可以了。

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

git config --global --unset http.proxy

下面看下go get 使用代理的方法

众所周知的原因,go get命令在提取一些工程或依赖时(如golang.org域名)被墙掉。通过使用vpn或代理的方法可以解决。

买vpn

这个就不多说了,买vpn,相当于直接连接。

使用代理

通过shell环境变量

export http_proxy=http://ip:port
go get golang.org/xxx

通过设置git代理

这也是go官方指导。

git config –global http.proxy 'http://127.0.0.1:8087'
go get golang.org/xxx

若使用*代理,请使用设置git代理的方式,且额外执行以下脚本再go get:

git config --global http.sslcainfo 'pathto/xx-net-3.6.15/data/gae_proxy/ca.crt'

总结

以上所述是小编给大家介绍的go get命令使用socket代理,希望对大家有所帮助