GVM是推荐的Go多版本管理工具,因其支持无root权限安装、隔离各版本、自动切换及项目级绑定;macOS/Linux通过bash脚本安装,配置shell后可自动加载,Windows需用gvm-win或手动管理。

在开发中,不同项目可能依赖不同版本的 Go(比如有的用 1.19,有的需 1.22,还有的仍在维护 Go 1.16),手动切换和编译多个 Go 版本既繁琐又容易出错。GVM(Go Version Manager)是社区常用的 Go 多版本管理工具,类似 Node.js 的 nvm 或 Python 的 pyenv,能快速安装、切换、卸载 Go 版本。
为什么推荐 GVM 而非手动管理
GVM 把每个 Go 版本独立安装在用户目录下(如 ~/.gvm/gos/go1.22.0),不污染系统 PATH,也不需要 root 权限;切换时仅修改 GOROOT 和 PATH,不影响全局环境;还能为不同项目绑定特定 Go 版本(通过 .gvmrc 文件自动加载)。
安装与初始化 GVM
在 macOS 或 Linux 上,运行以下命令一键安装:
bash
立即学习“go语言免费学习笔记(深入)”;
安装完成后,重启终端或执行:source ~/.gvm/scripts/gvm
验证是否生效:gvm version —— 应输出 GVM 当前版本
安装与切换 Go 版本
列出所有可安装的 Go 版本:gvm listall
安装指定版本(例如 Go 1.22.0):gvm install go1.22.0
查看已安装的版本:gvm list
切换到某版本(当前 Shell 会话生效):gvm use go1.22.0
设为默认版本(新终端自动使用):gvm use go1.22.0 --default
确认当前 Go 版本:go version 和 echo $GOROOT
项目级自动版本管理(可选进阶)
进入项目根目录,创建 .gvmrc 文件:echo "go1.22.0" > .gvmrc
然后执行:gvm use
之后每次进入该目录,GVM 会自动加载对应 Go 版本(需确保 shell 配置中启用了自动加载,如在 ~/.bashrc 或 ~/.zshrc 中添加:[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm")
注意:GVM 不支持 Windows 原生环境(WSL 可用)。Windows 用户可考虑 gvm-win(社区移植版)或使用官方提供的 多版本安装包 手动管理。










