問題描述:
由於某種眾所周知的一些原因,https://golang.org/ golang 的官方域名是被牆了的,這也就導致了,
在廣大 go 開發者使用 golang 的時候,總會出現 go get 失敗的問題。
解決這個問題的辦法,網上一搜一大堆,總結一下,網上大概有兩種解決方案。
- 因為 go get 不到的庫,一般來說在 github 都有人做了鏡像,這個時候一般是曲線救國,從 github 上面搞下來,然后把對應的東西放在對應目錄,這種方式比較麻煩,而且比較慢。
- 用代理,需要一台國外服務器,開啟一個 http 代理或者 socks5 代理,或者各種梯子,曲線救國,這種方式其實挺好的,我之前一直用這種方式,不過需要國外服務器以及其他一些知識。或者設置 GOPROXY 等。解決方案
解決方案:
golang 的 1.13 版本已經正式發布了,這個版本中,新的包管理方式 Go module 已經正式被扶正,還有支持 go 模塊代理。
對於咱們中國的開發者來說,一個優秀的 Go 模塊代理可以幫助我們解決很多問題。
比如 Go 語言中最知名的 golang.org/x/… 模塊在中國大陸是無法訪問到的,以前我們會用很多其他的辦法來抓取他們,而若依靠一個可以訪問到它們的模塊代理,那么將事半功倍。
更因為 Go 1.13 將 GOPROXY 默認成了中國大陸無法訪問的 https://proxy.golang.org ,所以我們中國的開發者從今以后必須先修改 GOPROXY 才能正常使用 go 來開發應用了。七牛雲專門為咱們中國開發者而打造了一個 Go 模塊代理:goproxy.cn。github地址:goproxy
那么如何使用這個代理呢?只需要一句命令。
go env -w GOPROXY=https://goproxy.cn,direct
完成。然后進行 go get 以及其他獲取包的命令,都會經過七牛雲進行代理,速度回有一個質的飛躍。前提是需要把 go 版本升級為 >=1.13