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

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

藏色散人
發布: 2021-02-28 16:21:26
轉載
3249 人瀏覽過

下面由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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板