掌握了這一招,Go版本的管理不用愁
安裝
如果你使用的mac,mac 需要先安裝xcode-select,沒安裝過的同學(xué)可以按照如下命令進行執(zhí)行安裝,這里不做太多說明了。
xcode-select --install
brew update
brew install mercurial
按照github上面指示,我們這里按照命令行進行下載gvm-installer進行安裝,終端執(zhí)行有問題的同學(xué)也可以到gvm-installer[1]頁面進行clone安裝。
$bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Cloning from https://github.com/moovweb/gvm.git to /Users/admin/.gvm
Created profile for existing install of Go at "/opt/homebrew/Cellar/go/1.18.1/libexec"
Installed GVM v1.0.22
Please restart your terminal session or to get started right away run
`source /Users/admin/.gvm/scripts/gvm`
接下來為了使gvm生效,需要執(zhí)行一下上面提示的source /Users/admin/.gvm/scripts/gvm命令即可,執(zhí)行結(jié)束就可以在新終端使用gvm來切換控制go的版本了。
使用
安裝好了,咱們就可以來簡單了解一下gvm的支持的一些功能。這下可以呼喚gvm的help選項了。
$gvm help
Usage: gvm [command]
Description:
GVM is the Go Version Manager
Commands:
version - print the gvm version number # 查看gvm的版本
get - gets the latest code (for debugging) # 獲取最新的代碼(一般為了調(diào)試)
use - select a go version to use (--default to set permanently) # 選擇使用的Go版本 (--default 可以永久設(shè)置)
diff - view changes to Go root # 查看Go root中的變更
help - display this usage text
implode - completely remove gvm # 完全刪除 gvm 和所有已安裝的 Go 版本和包
install - install go versions # 安裝某個版本的Go
uninstall - uninstall go versions # 卸載某個版本的Go
cross - install go cross compilers # 安裝跨平臺Go編譯器
linkthis - link this directory into GOPATH # 將項目路徑鏈接到GOPATH中
list - list installed go versions # 羅列已經(jīng)安裝的Go版本列表
listall - list available versions # 羅列可用的Go版本
alias - manage go version aliases # 管理Go版本別名
pkgset - manage go packages sets # 管理Go包的設(shè)置
pkgenv - edit the environment for a package set # 編輯Go包集合的環(huán)境
gvm的簡單使用
先通過gvm listall命令來看下目前的Go版本列表,如下,列表太長了,這里Go1-15的版本列表省略了,可以看出最新的是Go1.19的beta和幾個rc版本了。那么咱們接下來通過下載Go1.19的rc版本來做示例。
$gvm listall
gvm gos (available)
go1
...
go1.16
go1.16beta1
go1.16rc1
go1.16.1
go1.16.2
go1.16.3
go1.16.4
go1.16.5
go1.16.6
go1.16.7
go1.16.8
go1.16.9
go1.16.10
go1.16.11
go1.16.12
go1.16.13
go1.16.14
go1.16.15
go1.17
go1.17beta1
go1.17rc1
go1.17rc2
go1.17.1
go1.17.2
go1.17.3
go1.17.4
go1.17.5
go1.17.6
go1.17.7
go1.17.8
go1.17.9
go1.17.10
go1.17.11
go1.17.12
go1.18
go1.18beta1
go1.18beta2
go1.18rc1
go1.18.1
go1.18.2
go1.18.3
go1.18.4
go1.19beta1
go1.19rc1
go1.19rc2
release.r56
release.r57
release.r58
release.r59
release.r60
release.r57.1
release.r57.2
release.r58.1
release.r58.2
release.r60.1
release.r60.2
release.r60.3
安裝一個Go版本
先看下目前使用的Go版本,小土這里使用的是go1.18.1的版本。
$go version
go version go1.18.1 darwin/arm64
安裝一個最新Go1.19的rc1版本。
$gvm install go1.19rc1
Installing go1.19rc1...
* Compiling...
go1.19rc1 successfully installed!
版本切換
接下來,咱們切換一下下載好的go版本,這里使用gvm use version即可切換。
$gvm use go1.19rc1
Now using version go1.19rc1
如何永久切換呢?加上--default即可永久設(shè)置,可以通過新建終端執(zhí)行go version,驗證查看Go版本是否完全切換。
$gvm use go1.19rc1 --default
Now using version go1.19rc1
然后我們使用go version查看當(dāng)前使用的Go版本,看來是切換成功了。那么你就可以來去自如地切換Go版本了。尤其是在調(diào)試不同Go版本帶來的問題代碼時候特別有用。
$go version
go version go1.19rc1 darwin/arm64
升級問題排查
若在升級Go過程中,gvm文件的狀態(tài)發(fā)生錯亂或者其他問題,可以通過執(zhí)行rm -rf ~/.gvm來刪除gvm進行問題的fix。
小結(jié)
今天的短文主要介紹了一個gvm的使用,希望對大家有所幫助,更多詳情可以查看gvm[2],另外站長之前寫了一篇關(guān)于升級Go版本的文章,主要講的是使用goup[3]來進行Go版本的管理。小土這里就不介紹了,??,感興趣的同學(xué)可以查看終于找到了一款我喜歡的安裝和管理 Go 版本的工具。
參考資料
gvm-installer: https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer
[2]gvm: https://github.com/moovweb/gvm
[3]goup: https://github.com/owenthereal/goup
我是 polarisxu,北大碩士畢業(yè),曾在 360 等知名互聯(lián)網(wǎng)公司工作,10多年技術(shù)研發(fā)與架構(gòu)經(jīng)驗!2012 年接觸 Go 語言并創(chuàng)建了 Go 語言中文網(wǎng)!著有《Go語言編程之旅》、開源圖書《Go語言標(biāo)準(zhǔn)庫》等。
堅持輸出技術(shù)(包括 Go、Rust 等技術(shù))、職場心得和創(chuàng)業(yè)感悟!歡迎關(guān)注「polarisxu」一起成長!也歡迎加我微信好友交流:gopherstudio
