亚洲熟妇av一区二区三区,久久久久久精品观看sss,免费观看四虎精品国产永久,国产成人精品一区二三区熟女,天堂网在线最新版www资源网

終于找到了一款我喜歡的安裝和管理 Go 版本的工具(下載go安裝器)

一直以來(lái),我都習(xí)慣通過(guò)源碼安裝 Go。我是這么做的:

1)git clone Go 源碼

$ git clone https://github.com/golang/go

2)需要安裝什么版本就切換到對(duì)應(yīng)的分支,比如安裝 1.15.x

$ git checkout -b release-branch.go1.15 origin/release-branch.go1.15

如果本地之前已經(jīng)存在該分支,直接 git checkout release-branch.go1.15 即可。

3)將 go 整個(gè)目錄復(fù)制到 /usr/local/go1.15,編譯安裝

4)創(chuàng)建軟鏈:

ln -s go1.15 go

之后加上環(huán)境變量等。

如果想要切換版本,只需要做類似上面的步驟,最后將 go 這個(gè)軟鏈指向要切換的版本。

我這種方式存在兩個(gè)問(wèn)題:

  • 因?yàn)?Go1.5 實(shí)現(xiàn)了自舉,對(duì)于沒有安裝 Go 的系統(tǒng),需要先安裝 Go1.4;
  • 每次都編譯,還是沒那么方便,而且如果是 Windows 系統(tǒng),可能會(huì)有一些問(wèn)題(現(xiàn)在的 Windows 也可能沒問(wèn)題了?好久沒使用 Windows 了,使用 Windows 的朋友可以留言告知下);

之后看到 gvm[1] 這個(gè)工具,我試用了,可能是國(guó)內(nèi)網(wǎng)絡(luò)的原因,根本沒法安裝 Go,基本卡著不動(dòng)。此外還有一些其他的解決方案,比如 goenv[2],這是仿照 pyenv 和 rbenv 實(shí)現(xiàn)的,安裝配置感覺略微有點(diǎn)復(fù)雜,直接沒嘗試。

今天發(fā)現(xiàn)另外一個(gè)工具,和我手動(dòng)管理多版本的思路類似,所以愛上了!

1、開發(fā) goup 的初衷

發(fā)音:Go Up。作者介紹,他開發(fā)了這個(gè)工具的原因:

1)操作系統(tǒng)發(fā)行版的包管理工具一般不會(huì)那么及時(shí)的升級(jí) Go 到最新版本,特別是 Linux 發(fā)行版;

2)雖然安裝和管理 Go 版本的工具不少,但作者認(rèn)為要么存在一些問(wèn)題,要么體驗(yàn)不好或缺失一些功能;(哈哈哈,很有道理是不是?造一個(gè)輪子,總是覺得別人的不夠圓,自己的又大又圓,有木有?)

作者想要一個(gè)這樣的工具:

  • 不需要先安裝了 Go 的某個(gè)版本;(我上面的管理方案就是需要先安裝某個(gè)版本)
  • 這個(gè)工具本身安裝足夠簡(jiǎn)單,最好一行命令搞定;
  • 跨平臺(tái),在所有操作系統(tǒng)運(yùn)行良好,至少在類 Unix 系統(tǒng)運(yùn)行良好;
  • 能方便的安裝最新的 Go 版本;
  • 能方便的安裝 Go 的任意版本,包括 tip;
  • 不會(huì)污染你的 Shell;
  • 使用 Go 語(yǔ)言實(shí)現(xiàn);

2、安裝 goup

因?yàn)?goup 本身是 Go 語(yǔ)言實(shí)現(xiàn)的,因此他通過(guò)一個(gè)腳本下載對(duì)應(yīng)系統(tǒng)的預(yù)編譯 goup 程序。當(dāng)前最新版本 0.0.7 (這個(gè)工具是 9 月底開發(fā)的),當(dāng)然你也可以自己手動(dòng)下載這些編譯好 goup 程序。(如果你本地安裝了 Go 版本,直接 go get -u -v github.com/owenthereal/goup 安裝也是可以的)

終于找到了一款我喜歡的安裝和管理 Go 版本的工具(下載go安裝器)

一行代碼安裝 goup(推薦的方式):

$ curl -sSf https://raw.githubusercontent.com/owenthereal/goup/master/install.sh | sh

3、使用介紹

看看 goup 的幫助文檔:

$ goup helpThe Go installerUsage:  goup [command]Available Commands:  help        Help about any command  init        Initialize the goup environment file.  install     Install Go by providing a version (e.g. "1.15.2", or "tip"). If empty, use the latest version.  show        Show the current version of installed Go  version     Show goup versionFlags:  -h, --help   help for goupUse "goup [command] --help" for more information about a command.

  • install:安裝對(duì)應(yīng)的 Go 版本,也可以是 tip。如果不提供版本,則安裝當(dāng)前最新版本;
  • show:顯示當(dāng)前生效的 Go 版本;
  • init:會(huì)在 $HOME/.go 目錄下生成一個(gè) env 文件,內(nèi)容是設(shè)置 PATH 環(huán)境變量,即將 $HOME/.go/bin$HOME/.go/current/bin 加入 PATH 中;同時(shí)會(huì)往一些系統(tǒng)配置文件中加上 source "$HOME/.go/env"

比如我想試試還不支持 Module 的版本:1.10.8

$ goup install 1.10.8Downloaded   0.0% (    3320 / 87999054 bytes) ...Downloaded   3.7% ( 3260416 / 87999054 bytes) ...Downloaded  11.7% (10338304 / 87999054 bytes) ...Downloaded  21.1% (18563072 / 87999054 bytes) ...Downloaded  27.9% (24592384 / 87999054 bytes) ...Downloaded  34.8% (30588928 / 87999054 bytes) ...Downloaded  41.6% (36618240 / 87999054 bytes) ...Downloaded  48.4% (42549248 / 87999054 bytes) ...Downloaded  55.2% (48611328 / 87999054 bytes) ...Downloaded  62.1% (54640640 / 87999054 bytes) ...Downloaded  68.9% (60669952 / 87999054 bytes) ...Downloaded  75.8% (66666496 / 87999054 bytes) ...Downloaded  82.6% (72695808 / 87999054 bytes) ...Downloaded  88.8% (78135296 / 87999054 bytes) ...Downloaded  93.3% (82100224 / 87999054 bytes) ...Downloaded  94.4% (83083264 / 87999054 bytes) ...Downloaded  98.7% (86851584 / 87999054 bytes) ...Downloaded 100.0% (87999054 / 87999054 bytes)INFO[0016] Unpacking /Users/xuxinhua/.go/go1.10.8/go1.10.8.darwin-amd64.tar.gz ...INFO[0020] Success: go1.10.8 downloaded in /Users/xuxinhua/.go/go1.10.8INFO[0020] Default Go is set to 'go1.10.8'

你當(dāng)前系統(tǒng)的 Go 版本就是 1.10.8 了。如果之前安裝過(guò),上面的下載過(guò)程就沒有了:

$ goup install 1.10.8INFO[0000] go1.10.8: already downloaded in /Users/xuxinhua/.go/go1.10.8INFO[0000] Default Go is set to 'go1.10.8'$ goup showgo1.10.8

盡情地享受吧!

4、工作原理

這個(gè)工具的靈感來(lái)自 Rust 的工具:rustup[3]

它的工作原理很簡(jiǎn)單,在 $HOME/.go 目錄下創(chuàng)建對(duì)應(yīng)的版本目錄,然后在這個(gè)目錄創(chuàng)建一個(gè)軟鏈 current 來(lái)控制當(dāng)前使用哪個(gè) Go 版本。這個(gè)思路和我一直源碼安裝的思路類似。唯一區(qū)別是,它是從 dl.google.com 上下載對(duì)應(yīng)編譯好的版本。但 tip 版本,則需要 clone Go 源碼,進(jìn)行編譯安裝,因此要求有 Go 環(huán)境。

我本地 $HOME/.go 下的文件信息:

lrwxr-xr-x   1 xuxinhua  staff   28 10  9 17:16 current -> /Users/xuxinhua/.go/go1.10.8-rw-r--r--   1 xuxinhua  staff   57 10  9 16:46 envdrwxr-xr-x  21 xuxinhua  staff  672 10  9 17:14 go1.10.8drwxr-xr-x  22 xuxinhua  staff  704 10  9 10:03 go1.14.9drwxr-xr-x  22 xuxinhua  staff  704 10  9 10:02 go1.15.2drwxr-xr-x   2 xuxinhua  staff   64 10  9 17:10 gotip

5、存在的一些問(wèn)題

這個(gè)工具才出來(lái)十幾天,試用下來(lái),還存在一些問(wèn)題:

  • 安裝最新版本,需要知道當(dāng)前最新版本是哪個(gè)?這是從 https://golang.org/VERSION?m=text 獲取的,但這個(gè)網(wǎng)址咱們無(wú)法訪問(wèn);同樣的道理,安裝 tip 版本,源碼是從 https://go.googlesource.com/go 獲取的。因此目前大陸還無(wú)法使用;不過(guò)我已經(jīng)給作者提了 issue,應(yīng)該很快就會(huì)支持;
  • 缺失一些功能。比如我想安裝某個(gè)版本,比如 1.12.x,但我希望安裝的是 1.12 系列的最新版本,這時(shí)候你只能去找 1.12 的最新版本是哪個(gè)。
  • 。。。

我參照 gvm 提供的功能,給 goup 作者提了 issue,希望增加如下功能:

  • goup list 和 goup listall
  • goup uninstall

6、小結(jié)

整體上,目前 goup 的使用還是比較順暢的。歡迎大家試用,可以順便給個(gè) star。對(duì)了,項(xiàng)目地址:https://github.com/owenthereal/goup。

對(duì)了,至于為什么會(huì)需要管理多版本,我想很多人還會(huì)有這樣的需求吧?!你為什么需要呢?歡迎留言。

參考資料

[1]

gvm: https://github.com/moovweb/gvm

[2]

goenv: https://github.com/syndbg/goenv

[3]

rustup: https://rustup.rs/

終于找到了一款我喜歡的安裝和管理 Go 版本的工具(下載go安裝器)

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。