下面由golang教程欄目給大家介紹golang.org/x一鍵安裝腳本,希望對需要的朋友有所幫助!
golang.org/x一鍵安裝腳本
背景
由于各種問題,國內使用 go get 安裝 golang 官方包可能會失敗,如我自己在安裝 collidermain 時,出現了以下報錯:
$ 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
的鏡像庫
獲取 golang.org/x/net 包,其實只需要以下步驟:
mkdir -p $GOPATH/src/golang.org/x cd $GOPATH/src/golang.org/x git clone https://github.com/golang/net.git
其它 golang.org/x 下的包獲取皆可使用該方法。
所以在這里寫了一個bash腳本一鍵安裝golang.org/x的包
- windows用戶 git-bash 來執(zhí)行gox.sh這個腳本
- *unix用戶 先
chmod +x gox.sh
添加可以執(zhí)行權限.在使用./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 "已經安裝的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賬號。