當你想完成 Golang 開發環境的便捷安裝以及隨時更新和保障多個版本的 Golang 共存的時候,就需要使用到 Golang 的專門版本管理工具 ——gvm
本篇隨筆記錄了在 Ubuntu 下安裝使用 gvm 的過程
我們可以使用國內映象下載包含安裝指令碼的倉庫程式碼,然後直接執行安裝指令碼,來完成安裝
先使用 git clone
下載完整的軟體倉庫:
git clone https://gitcode.net/soulteary/gvm.git
指定 SRC_REPO
引數為國內映象地址,然後執行安裝指令碼:
SRC_REPO=https://gitcode.net/soulteary/gvm.git bash gvm/binscripts/gvm-installer
當指令碼執行完畢,我們將會看到上文中提到過的紀錄檔輸出,此刻 gvm
就安裝完畢啦。
為了更方便的使用 gvm
,我們還需要進行一些設定。
gvm 支援使用兩種方式來下載 「Golang」,然而不論是「下載原始碼編譯安裝」,還是下載適合當前作業系統的「預編譯好的二進位制檔案」,我們都需要存取官方地址。
為了避免下載過程中因為網路問題,出現下載慢,或者無法下載的情況,節約我們的時間,我們需要對 gvm
進行一些簡單的設定。
我們可以在當前使用的 「SHELL
」 的 「rc
」 檔案中(比如.bashrc
或者 .zshrc
),新增下面的內容,來在當前的環境中讓 gvm
命令生效,同時,讓我們能夠使用更快的下載源來下載我們所需要的 「Golang」:
export GO_BINARY_BASE_URL=https://golang.google.cn/dl/ [[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm" export GOROOT_BOOTSTRAP=$GOROOT
在「rc
」 檔案中新增了上述內容後,需要重啟終端
export GO_BINARY_BASE_URL=https://golang.google.cn/dl/
命令中的 GO_BINARY_BASE_URL
變數,定義了我們將從何處下載 Golang 的二進位制檔案或原始碼壓縮包進行安裝。當然,你也可以將其替換為下面的任意一個。
# 官方地址 https://go.dev/dl/ # 官方國內映象地址 https://golang.google.cn/dl/ # 阿里雲映象 https://mirrors.aliyun.com/golang/ # 中科大映象 http://mirrors.ustc.edu.cn/golang/
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"
這條命令,是根據軟體的實際安裝情況來選擇性載入 gvm
。相比較前文中安裝完畢 gvm
紀錄檔輸出內容推薦我們直接使用 source
命令載入 gvm
,這樣可以更安全的執行命令,當且僅當 ~/.gvm
存在的時候才會載入程式,將 gvm
註冊到你當前的 SHELL
環境中。
export GOROOT_BOOTSTRAP=$GOROOT
最後一條命令,則是為了確保 Golang 使用原始碼編譯安裝時,不會出錯(golang 1.14後需要 )
gvm
是一個特別簡單的命令,我們日常使用中其實只需要記得兩個命令就好,第一個是 gvm install
,第二個是 gvm use
。
假設我們想安裝 Golang 最新版本 1.18.3,那麼只需要執行下面的命令:
gvm install go1.18.3 -B
如果你沒有裝 CURL 的話還需要自行安裝
在執行完畢命令之後,稍等片刻,當我們看到 Installing go1.18.3 from binary source
這條紀錄檔輸出結果後,就意味著 Golang 已經被下載完畢了。如果你希望使用編譯原始碼的方式安裝 Golang 的話,可以去掉上面命令中的-B
引數:
gvm install go1.18.3
雖然我們已經完成了 Golang 1.18.3 的安裝,但是目前我們還不能直接使用它,需要再執行一條命令,將這個版本的 Golang 「啟用」:
gvm use go1.18.3 --default
在執行完命令之後,我們能夠立刻看到類似 Now using version go1.18.3
的紀錄檔輸出結果,接下來我們就可以隨意的使用 go
這個命令了。
我們可以使用 go version
來驗證剛剛下載的程式是否符合我們的訴求
安裝過程參考https://zhuanlan.zhihu.com/p/537292132
以上
本文來自部落格園,作者:slowlydance2me,轉載請註明原文連結:https://www.cnblogs.com/slowlydance2me/p/17235311.html