<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] # 問題描述 當我們使用`go get`、`go install`、`go mod`等命令時,會自動下載相應的包或依賴包。但由于眾所周知的原因,類似于`golang.org/x/...`的包會出現下載失敗的情況。如下所示: ~~~ go get -u golang.org/x/sys go get golang.org/x/sys: unrecognized import path "golang.org/x/sys" (https fetch: Get https://golang.org/x/sys?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) ~~~ # 手動下載 我們常見的`golang.org/x/...`包,一般在 GitHub 上都有官方的鏡像倉庫對應。比如`golang.org/x/text`對應`github.com/golang/text`。所以,我們可以手動下載或 clone 對應的 GitHub 倉庫到指定的目錄下 ~~~ mkdir $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone git@github.com:golang/text.git rm -rf text/.git ~~~ 當如果需要指定版本的時候,該方法就無解了,因為 GitHub 上的鏡像倉庫多數都沒有 tag。并且,手動嘛,程序員怎么能干呢,尤其是依賴的依賴,太多了 # 設置代理 如果你**有代理**,那么可以設置對應的環境變量 ~~~ export http_proxy=http://proxyAddress:port export https_proxy=http://proxyAddress:port ~~~ 或者,直接用`all_proxy` ~~~ export all_proxy=http://proxyAddress:port ~~~ # `go mod replace` 從 Go 1.11 版本開始,新增支持了`go modules`用于解決包依賴管理問題。該工具提供了`replace`,就是為了解決包的別名問題,也能替我們解決`golang.org/x`無法下載的的問題。 `go module`被集成到原生的`go mod`命令中,但是如果你的代碼庫在`$GOPATH`中,`module`功能是默認不會開啟的,想要開啟也非常簡單,通過一個環境變量即可開啟`export GO111MODULE=on` ~~~ module example.com/hello require ( golang.org/x/text v0.3.0 ) replace ( golang.org/x/text => github.com/golang/text v0.3.0 ) ~~~ 類似的還有[glide](https://github.com/Masterminds/glide)、[gopm](https://github.com/gpmgo/gopm)等這類第三方包管理工具,都不同方式的解決方案提供給我們。 # GOPROXY 環境變量 終于到了本文的終極大殺器 ——**GOPROXY**。 我們知道從`Go 1.11`版本開始,官方支持了`go module`包依賴管理工具。 其實還新增了`GOPROXY`環境變量。如果設置了該變量,下載源代碼時將會通過這個環境變量設置的代理地址,而不再是以前的直接從代碼庫下載。這無疑對我等無法科學上網的開發良民來說是最大的福音。 更可喜的是,[goproxy.io](https://github.com/goproxyio/goproxy)這個開源項目幫我們實現好了我們想要的。該項目允許開發者一鍵構建自己的`GOPROXY`代理服務。同時,也提供了公用的代理服務`https://goproxy.io`,我們只需設置該環境變量即可正常下載被墻的源碼包了: ~~~ export GOPROXY=https://goproxy.io ~~~ 不過,**需要依賴于`go module`功能**。可通過`export GO111MODULE=on`開啟 MODULE。 如果項目不在`GOPATH`中,則無法使用`go get ...`,但可以使用`go mod ...`相關命令。 也可以通過置空這個環境變量來關閉,`export GOPROXY=`。 對于 Windows 用戶,可以在`PowerShell`中設置: ~~~ $env:GOPROXY = "https://goproxy.io" ~~~ 最后,我們當然推薦使用`GOPROXY`這個環境變量的解決方式,前提是**Go version >= 1.11**。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看