Golang版本管理工具GVM
目录
关键字
Go版本管理,GVM
背景环境
我今天尝试运行一个开源项目,但是需要Go1.24,而我本地安装的是Go1.22。我就在想有没有像Python的Anaconda一样的环境管理工具?
我尝试在找了一下,找到一个GVM的开源工具,勉强能满足要求。
操作环境
- Ubuntu 22
GVM安装
# 安装依赖(如果需要其它依赖自行安装)
sudo apt-get install bison
sudo apt install make
# 安装 GVM
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
# 重启终端 或 生效GVM配置
source ~/.gvm/scripts/gvm
# 测试安装
gvm version
GVM操作
# 查看已安装Go版本
gvm list
# 查看可用Go版本
gvm listall
# 安装Go
gvm install go1.24.3
# 切换GO版本
gvm use go1.24.3
# 切换并指定默认Go版本
gvm use go1.24.3 --default
# 删除Go版本
gvm uninstall go1.24.3
# 卸载GVM并删除所有Go版本
gvm implode
其它问题
离线安装
在执行:gvm install的时候,如果卡住了,可以使用离线安装的方法。
- 下载安装包到 ~/.gvm/archive/目录下
wget -P ~/.gvm/archive/ https://studygolang.com/dl/golang/go1.24.0.linux-amd64.tar.gz
- 通过二进制安装
gvm uninstall go1.24.0 --binary
- 查看GO版本
gvm list
# output
gvm gos (installed)
go1.24.0
system
解决 Go 1.5+ 的编译问题
Go 1.5 及以后版本的编译需要一个已有的 Go 版本进行引导,因此我们需要先安装 Go 1.4:
gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.7
使用 GVM 管理 GOPATH
GVM 还可以管理不同的 GOPATH,可以在不同项目间切换:
gvm pkgset create my_project
gvm pkgset use my_project
# 如果要删除:
gvm pkgset delete my_project