Golang無法下載包問題解決-GOPROXY&GOPRIVATE

國內由于GFW和網速比較慢的原因,部分網站無法直接訪問。但是golang學習者從部分技術網站下載代碼進行學習又是必不可少的。

1 問題描述

作為golang開發者,當執行go getgo installgo mod命令時,會自動下載相應的代碼包或者依賴包。
例如,執行go get golang.org/x/net,經常下載失敗。

2 問題解決

設置GOPROXY為國內大廠的golang代碼鏡像代理。go module包依賴管理工具在golang 1.11+支持,并添加了GOPROXY環境變量。
如果設置了GOPROXY環境變量,下載源代碼時會通過GOPROXY設置的代理地址下載。
如果Golang的版本golang1.13+,可以設置GOPRIVATE 環境變量來控制直接走本地的私有倉庫和依賴(一般是公司內部的golang私有倉庫),而無需通過 proxy 來拉取。

3 設置方法

  1. Linux, MacOS
  • 當前terminal生效
# 啟用Go module功能
export GO111MODULE=on
# 配置GOPROXY環境變量 export GOPROXY={proxy_url}
export GOPROXY=https://goproxy.io,direct
# Set environment variable allow bypassing the proxy for specified repos (optional if Go version >=1.13)
export GOPRIVATE=git.mycompany.com,github.com/my/private

或者:

$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
  • 當前用戶生效
    把以上命令加入到~/.bashrc~/.bash_profile~/.bash_profile~/.bash_login~/.profile其中一個文件中,重啟系統后對當前用戶生效。
  • 全局生效
    把以上命令加入到/etc/profile/etc/bashrc其中一個文件中,重啟系統后對當前用戶生效。
  1. Windows
    PowerShell中運行以下命令:
# 啟用go module功能
$env:GO111MODULE="on"
# 配置GOPROXY環境變量$env:GOPROXY="{proxy_url}"
$env:GOPROXY = "https://goproxy.io,direct"
# Set environment variable allow bypassing the proxy for specified repos (optional if Go version >=1.13)
$env:GOPRIVATE = "git.mycompany.com,github.com/my/private"

4 可用的代理

  1. GOPROXY.IO - A Global Proxy for Go Modules
  • Linux or macOS
    Bash
# Set the GOPROXY environment variable
export GOPROXY=https://goproxy.io,direct
# Set environment variable allow bypassing the proxy for specified repos (optional if Go version >=1.13)
export GOPRIVATE=git.mycompany.com,github.com/my/private
  • Windows
    PowerShell
# Set the GOPROXY environment variable
$env:GOPROXY = "https://goproxy.io,direct"
# Set environment variable allow bypassing the proxy for specified repos (optional if Go version >=1.13)
$env:GOPRIVATE = "git.mycompany.com,github.com/my/private"
  1. Goproxy.cn - 七牛云
    設置方法見3 設置方法
    GOPROXY的URL為:https://goproxy.cn

  2. 阿里云Go Module代理服務
    設置方法見3 設置方法
    GOPROXY的URL為:https://mirrors.aliyun.com/goproxy/

4 參考

  1. GOPROXY:解決 go get golang.org/x 包失敗
  2. Managing dependencies - The Go Programming Language
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容