下面由golang教程欄目給大家介紹golang.org/x一鍵安裝腳本,希望對(duì)需要的朋友有所幫助!
golang.org/x一鍵安裝腳本
背景
由于各種問(wèn)題,國(guó)內(nèi)使用 go get 安裝 golang 官方包可能會(huì)失敗,如我自己在安裝 collidermain 時(shí),出現(xiàn)了以下報(bào)錯(cuò):
$ 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)
原理
其實(shí) golang 在 github 上建立了一個(gè)鏡像庫(kù),如 https://github.com/golang/net
即是 https://golang.org/x/net
的鏡像庫(kù)
獲取 golang.org/x/net 包,其實(shí)只需要以下步驟:
mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/net.git
其它 golang.org/x 下的包獲取皆可使用該方法。
所以在這里寫(xiě)了一個(gè)bash腳本一鍵安裝golang.org/x的包
- windows用戶 git-bash 來(lái)執(zhí)行g(shù)ox.sh這個(gè)腳本
- *unix用戶 先
chmod +x gox.sh
添加可以執(zhí)行權(quán)限.在使用./gox.sh
執(zhí)行一鍵安裝
#!/usr/bin/env bash #為了兼容windows下的bash cd $GOPATH; #創(chuàng)建 $GOPATH/src/golang.org/x 目錄 mkdir -p $GOPATH/src/golang.org/x; echo "已經(jīng)安裝的golang.org/x package"; ls; echo "下面一行 for in 中包的名字您可以自己來(lái)定義" 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 "包已經(jīng)存在,使用git pull來(lái)更新源碼"; git pull; else git_url="https://github.com/golang/${name}.git"; echo "開(kāi)始clone golang.org/x 在github.com上的鏡像代碼:${git_url}"; git clone --depth 1 "$git_url"; cd $name; fi #go install; done
注意
在運(yùn)行腳本的過(guò)程,應(yīng)為git clone 太頻繁,需要輸入你的GitHub賬號(hào)。