日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
快速解決gogetgolang.org/x包不成功的問題

本文由go語言教程欄目給大家介紹如何一鍵解決 go get golang.org/x 包失敗問題,希望對需要的朋友有所幫助!

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的天柱網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

一鍵解決 go get golang.org/x 包失敗

當(dāng)我們使用 go get、go install、go mod 等命令時(shí),會(huì)自動(dòng)下載相應(yīng)的包或依賴包。但由于眾所周知的原因,類似于 golang.org/x/... 的包會(huì)出現(xiàn)下載失敗的情況。如下所示:

$ 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)

解決方式

那我們該如何解決問題呢?畢竟還要制造 bug 的嘛~

手動(dòng)下載

我們常見的 golang.org/x/... 包,一般在 GitHub 上都有官方的鏡像倉庫對應(yīng)。比如 golang.org/x/text 對應(yīng) github.com/golang/text。所以,我們可以手動(dòng)下載或 clone 對應(yīng)的 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

當(dāng)如果需要指定版本的時(shí)候,該方法就無解了,因?yàn)?GitHub 上的鏡像倉庫多數(shù)都沒有 tag。并且,手動(dòng)嘛,程序員怎么能干呢,尤其是依賴的依賴,太多了。

設(shè)置代理

如果你有代理,那么可以設(shè)置對應(yīng)的環(huán)境變量:

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 功能是默認(rèn)不會(huì)開啟的,想要開啟也非常簡單,通過一個(gè)環(huán)境變量即可開啟 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、gopm 等這類第三方包管理工具,都不同方式的解決方案提供給我們。

GOPROXY 環(huán)境變量

終于到了本文的終極大殺器 —— GOPROXY

我們知道從 Go 1.11 版本開始,官方支持了 go module 包依賴管理工具。

其實(shí)還新增了 GOPROXY 環(huán)境變量。如果設(shè)置了該變量,下載源代碼時(shí)將會(huì)通過這個(gè)環(huán)境變量設(shè)置的代理地址,而不再是以前的直接從代碼庫下載。這無疑對我等無法科學(xué)上網(wǎng)的開發(fā)良民來說是最大的福音。

更可喜的是,goproxy.io 這個(gè)開源項(xiàng)目幫我們實(shí)現(xiàn)好了我們想要的。該項(xiàng)目允許開發(fā)者一鍵構(gòu)建自己的 GOPROXY 代理服務(wù)。同時(shí),也提供了公用的代理服務(wù) https://goproxy.io,我們只需設(shè)置該環(huán)境變量即可正常下載被墻的源碼包了:

export GOPROXY=https://goproxy.io

不過,需要依賴于 go module 功能。可通過 export GO111MODULE=on 開啟 MODULE。

如果項(xiàng)目不在 GOPATH 中,則無法使用 go get ...,但可以使用 go mod ... 相關(guān)命令。

也可以通過置空這個(gè)環(huán)境變量來關(guān)閉,export GOPROXY=。

對于 Windows 用戶,可以在 PowerShell 中設(shè)置:

$env:GOPROXY = "https://goproxy.io"

最后,我們當(dāng)然推薦使用 GOPROXY 這個(gè)環(huán)境變量的解決方式,前提是 Go version >= 1.11。


分享文章:快速解決gogetgolang.org/x包不成功的問題
鏈接URL:http://www.dlmjj.cn/article/dhdcjpc.html