由於某些不可抗力的原因,國內使用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"
登入後複製