有無偏財運
使用 Go 版本治理器治理多個版本的 Go 說話情況及其模塊。
Go 說話版本治理器(GVM)是治理 Go 說話情況的開源對象。GVM “pkgsets” 支撐裝置多個版本的 Go 并治理每個項目的模塊。它最后由 Josh Bussdieker 開發,GVM(像它的敵手 Ruby RVM 同樣)許可你為每個項目或者一組項目創立一個開發情況,星散不同的 Go 版本以及包依靠瓜葛,以供應更大的天真性,防止不同版本釀成的成績。
有幾種治理 Go 包的方式,包含內置于 Go 中的 Go 1.11 的 Modules。我發明 GVM 簡略直觀,縱然捕魚達人apk我不消它來治理包,我仍是會用它來治理 Go 不同的版本的。
裝置 GVM
裝置 GVM 很簡略。GVM 存儲庫裝置文檔指示你下載裝置法式劇本并將其傳送到 Bash 來裝置:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
絕管愈來愈多的人采取這類裝置要領,然則在裝置之前先望望裝置法式在做甚么依然是一個很好的設法。以 GVM 為例,該裝置法式劇本:
- 反省一些相關依靠性
- 克隆 GVM 存儲庫
- 使用 shell 劇本:
- 裝置 Go 說話
- 治理
GOPATH 情況變量
- 向
bashrc 、zshrc 或者設置文件中增添一行內容
若是你想確認它在做甚么,你可以克隆該存儲庫并查望 shell 劇本,然后運轉 ./binscripts/gvm-installer 這個內地劇本進行配置。
注重: 由于 GVM 可以用來下載以及編譯新的 Go 版本,以是有一些預期的依靠瓜葛,如 Make、Git 以及 Curl。你可以在 GVM 的自述文件中找到完備的刊行版列表。
使用 GVM 裝置以及治理 GO 版本
一旦裝置了 GVM,你就可以使用它來裝置以及治理不同版本的 Go。gvm listall 下令顯示可下載以及編譯的可用版本的 Go:
[chris@marvin ]$ gvm listall
-
gvm gos (available)
-
go1
妞妞牌型 go1.0.1
go1.0.2
go1.0.3
-
<輸入截斷>
裝置特定的 Go 版本就像 gvm install <版本> 同樣簡略,個中 <版本> 是 gvm listall 下令返歸的版本之一。
假定你正在進行一個使用 Go1.12.8 版本的項目。你可以使用 gvm install go1.12.8 裝置這個版本:
[chris@marvin]$ gvm install go1.12.8
Installing go1.12.8...
* Compiling...
go1.12.8 successfully installed!
輸出 gvm list ,你會望到 Go 版本 1.12.8 與體系 Go 版本(使用操作體系的軟件擔保理器打包的版本)一路并存:
[chris@marvin]$ gvm list
-
gvm gos (installed)
-  捕魚達人儲值;
go1.12.8
=> system
GVM 仍在使用體系版本的 Go ,由 => 符號透露表現。你可以使用 gvm use 下令切換你的情況以使用新裝置的 go1.12.8:
[chris@marvin]$ gvm use go1.12.8
Now using version go1.12.8
-
[chris@marvin]$ go version
go version go1.12.8 linux/amd64
GVM 使治理已經裝置版本的 Go 變得極其簡略,但它不止于此!
使用 GVM pkgset
開箱即用,Go 有一種精彩而使人懊喪的治理包以及模塊的方式。默許環境下,若是你 go get 獵取一個包,它將被下載到 $GOPATH 目次中的 src 以及 pkg 目次下,然后可以使用 import 將其包括在你的 Go 法式中。這使得取得軟件包變得很輕易,分外是關于非特權用戶,而不必要 sudo 或者 root 特權(很像 Python 中的 pip install --user )。然而,在不同的項目中治理雷同包的不同版本黑白常難題的。
有很多要領可以測驗考試修復或者緩解這個成績,包含試驗性 Go Modules(Go 1.11 版中增長了初步支撐)以及 Go dep(Go Modules 的“民間試驗”而且繼續迭代)。在我發明 GVM 之前,我會在一個 Go 項目本人的 Docker 容器中構建以及測試它,以確保星散。
GVM 經由過程使用 “pkgsets” 將項目的新目次附加到裝置的 Go 版本的默許 $GOPATH 上,很好地完成了項目之間包運彩版ptt的治理以及隔離,就像 $PATH 在 Unix/Linux 體系上事情同樣。
想象它若何運轉的。起首,裝置新版 Go 1.12.9:
[chris@marvin]$ echo $GOPATH
/home/chris/.gvm/pkgsets/go1.12.8/global
-
[chris@marvin]$ gvm install go1.12.9
Installing go1.12.9...
* Compiling...
台灣六合彩玩法go1.12.9 successfully installed
-
[chris@marvin]$ gvm use go1.12.9
Now using version go1.12.9
【免責聲明】本站內容轉載自互聯網,其相關談吐僅代表作者小我私家概念盡非權勢巨子,不代表本站態度。如您發明內容存在版權成績,請提交相關鏈接至郵箱:,咱們將實時予以處置。
|