因爲各類問題,國內使用 go get 安裝 golang 官方包可能會失敗,如我本身在安裝 collidermain 時,出現瞭如下報錯:git
$ go get collidermain package golang.org/x/net/websocket: unrecognized import path "golang.org/x/net/websocket" (https fetch: Get https://golang.org/x/net/websocket?go-get=1: dial tcp 216.239.37.1:443: i/o timeout)
其實 golang 在 github 上創建了一個鏡像庫,如 https://github.com/golang/net
便是 https://golang.org/x/net
的鏡像庫github
獲取 golang.org/x/net 包,其實只須要如下步驟:golang
mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/net.git
其它 golang.org/x 下的包獲取皆可以使用該方法。web
chmod +x gox.sh
添加能夠執行權限.在使用./gox.sh
執行一鍵安裝#!/usr/bin/env bash #爲了兼容windows下的bash cd $GOPATH; #建立 $GOPATH/src/golang.org/x 目錄 mkdir -p $GOPATH/src/golang.org/x; echo "已經安裝的golang.org/x package"; ls; echo "下面一行 for in 中包的名字您能夠本身來定義" for name in "glog" "image" "perf" "snappy" "term" "sync" "winstrap" "cwg" "leveldb" "text" "net" "build" "protobuf" "dep" "sys" "crypto" "gddo" "tools" "scratch" "proposal" "mock" "oauth2" "freetype" "debug" "mobile" "gofrontend" "lint" "appengine" "geo" "review" "arch" "vgo" "exp" "time";do cd $GOPATH/src/golang.org/x; if [ -d "$name" ] then cd $name; echo $name "包已經存在,使用git pull來更新源碼"; git pull; else git_url="https://github.com/golang/${name}.git"; echo "開始clone golang.org/x 在github.com上的鏡像代碼:${git_url}"; git clone --depth 1 "$git_url"; cd $name; fi #go install; done
在運行腳本的過程,應爲git clone 太頻繁,須要輸入你的GitHub帳號shell