首頁 >後端開發 >Golang >詳解golang.org/x一鍵安裝腳本

詳解golang.org/x一鍵安裝腳本

藏色散人
藏色散人轉載
2021-02-28 16:13:323243瀏覽

下面由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 來執行gox.sh這個腳本
  • #*unix使用者先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帳號。

以上是詳解golang.org/x一鍵安裝腳本的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除