解決go get下載包失敗問題
由於某些不可抗力的原因,國內使用go get
命令安裝包時會經常會出現timeout的問題。本文介紹幾個常用的解決辦法。
從github克隆
golang在github上建立了一個鏡像庫,如https://github.com/golang/net
就對應是 https://golang.org/x/net
的鏡像庫。 要下載golang.org/x/net
包,可以在本地創建包的目錄后使用git clone
來拉取相應包的源代碼文件,具體操作如下:
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git
使用gopm
使用gopm可以從golang.org的一些鏡像網站上下載。
安裝gopm
go get -u github.com/gpmgo/gopm
使用gopm安裝第三方包
不加-g
參數,會把依賴包下載.vendor
目錄下面; 加上-g
參數,可以把依賴包下載到GOPATH
目錄中。
gopm get -g golang.org/x/net
使用goproxy
Go的1.11版本以后 可以設置GOPROXY
這個變量,來設置代理。 如果你自己有代理服務器就可以把這個環境變量設置成自己的代理。 首先開啟go module
支持:
在Mac/linux下執行:
export GO111MODULE=on
Windows平台執行:
SET GO111MODULE=on
2019.6.10更新:goproxy.cn
我們這里以https://goproxy.cn
為例:
在Mac/linux下可以執行以下命令來設置:
export GOPROXY=https://goproxy.cn
Windows平台在cmd
執行以下命令來設置:
SET GOPROXY="https://goproxy.cn"
或者在PowerShell
中執行:
C:\> $env:GOPROXY = "https://goproxy.cn"