使用Go Version Manager(GVM)
如果你希望更方便地管理多个Go版本,可以考虑使用Go Version Manager(GVM)。GVM是一个用于管理Go环境的开源工具,支持安装、卸载和切换多个Go版本。
window11上安装和使用GVM或G
1、方案 A:voidint/g 单 exe(轻量、软链切换)
它命令行叫 g,有些发行叫 gvm,本质一样。
最新版本:V1.8.0 Jul 10, 2025
1)下载
去 https://github.com/voidint/g/releases。
g1.8.0.windows-amd64.zip 解压后得到的是【g.exe】
不管是CMD、还是powershell,都要以管理员身份运行!!!
不然,会出现【Symlink…A required privilege is not held by the client.】,就是无权创建软链,导致GOROOT指向的go目录不存在。
安装:
把”g.exe”复制放到【D:\g】目录下,然后配置按以下环境变量配置。
2)环境变量(系统变量)
#参考 https://github.com/voidint/g/blob/master/README_CN.md# 配置下G_MIRROR,为了下载go的时候不翻墙G_MIRROR=https://golang.google.cn/dl/# 开启所有的实验特性G_EXPERIMENTAL=true# 按照惯例,g 默认会将~/.g目录作为其家目录。若想自定义家目录(Windows 用户需求强烈),可使用该环境变量切换到其他家目录G_HOME=D:\g# 配置GOROOT,这个指向g/gvm工作目录下的go,g安装go版本后,会在这个路径下建立一个软链到versions目录下的指定版本,靠这个方法来控制当前的go版本,**如果安装g/gvm之前已经安装过go了,需要修改GOROOT这个环境变量**GOROOT=%G_HOME%\go# 配置环境变量# 编辑系统变量中的【PATH】变量%GOROOT%\bin
3)管理员 CMD/PowerShell 跑(软链要权限)
g -vg install 1.21.13g install 1.25.14g install 1.19.13g use 1.21.13go version
g use 会把 %G_HOME%\go 重指到 %G_HOME%\versions\1.21.0 之类。
若报 “Symlink … privilege not held”,要么用管理员,要么 Win11 设置→开发者模式开“创建符号链接”,再跑。


2、方案 B:Windows 版 gvm 不推荐
适用 PowerShell / Win11,nvm 风格。
1)安装gvm 不推荐(PowerShell 管理员)
https://gitee.com/voidint/gvm显示 7年前的了
尝试安装到D:/gvm(先建变量再跑脚本,若脚本读取 GVM_HOME 即可生效;不读取那就装完再改):
# 管理员或当前用户都行,用户变量更稳[System.Environment]::SetEnvironmentVariable("GVM_HOME","D:\gvm","User")# 然后新开 PowerShell 跑安装irm https://raw.githubusercontent.com/David-Coach-Dev/gvm/main/install-nvm-style.ps1 | iex
装完再改:
gvm versionecho $env:GVM_HOMEgvm list打开环境高级配置,直接复制【AppData\gvm】到【D:\gvm】
手动下载指定版本
https://golang.google.cn/dl/例如下载:go1.21.13.windows-amd64.zip 解压并且放到 D:\gvm\versions\go1.21.13 下
2)常用命令
gvm listall # 可装版本清单gvm install 1.21.0 # 装指定版本gvm install latest # 装最新gvm use 1.21.0 # 当前 shell 切到 1.21gvm list # 已安装gvm uninstall 1.20.5 # 删
项目根目录放 .go-version 写 1.21.0,进目录可自动切(安装时启用了 auto-switch 才生效)。
3)验证
where gogo versiongo env GOROOT
gvm use 后这两处应指向 gvm 管理的版本目录,而不是老 C:\Program Files\Go。
注意:PowerShell 执行策略可能拦脚本,先
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned(管理员)再跑。
3、常见坑
where go出现多个路径:旧C:\Program Files\Go\bin没清,gvm 切了但 PATH 老条目在前 → 系统环境变量 PATH 只留一个 GOROOT\bin。- 开始菜单启动 GoLand 不继承终端 gvm → 用终端
gvm use后在该终端敲goland/goland64.exe启动,或直接在 IDE GOROOT 写绝对路径。 - 软链权限失败 → 管理员终端,或 Win11 开发者模式开符号链接。
- 用 msi 装过官方 Go 又用 gvm → 先卸掉系统 GOROOT/PATH 里的 msi 残留,避免两套打架。
- WSL 里另装 moovweb/gvm 也能用,但那只管 WSL 内 Linux Go,不管 Windows GoLand 调试;Windows 项目别混用。
mac、linux上 安装GVM:
访问GVM的GitHub页面或根据官方文档安装GVM。
通常,安装命令类似于:
cd /rootbash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
以下的【gvminstall.sh】我已经重新封装(即换成了gitee的git源)原:https://github.com/moovweb/gvm
cd /rootwget http://www.taiww.com/other/go/gvminstall.shbash gvminstall.shchmod -R 755 /root/.gvmgvm -v

注意:系统要系统有 curl
yum -y install curl或者:从别的服务器COPY来,路径目录为:/usr/bin/curl
使用GVM安装Go 1.13.10:
安装完成后,使用GVM安装Go 1.13.10版本:
gvm install go1.13.10

如果卡住,得开VPN。或者 多尝试几次就成功了。
列出所有版本:
gvm list
切换版本:
使用GVM切换到你需要的Go版本:
gvm use go1.13.10
验证版本:
运行go version来验证当前使用的Go版本。
go version
有个坑:
/root/.gvm/scripts/env/ 这个目录下面有个“cd”文件会影响系统本身的cd命令,删除cd文件即可
注意事项
- 在切换Go版本时,请确保你的项目依赖与所选版本兼容。
- 如果你的项目使用了Go Modules(推荐的做法),通常可以更灵活地处理不同版本的依赖,因为Go Modules允许你在项目级别指定依赖的版本。
- 在某些情况下,直接修改系统级别的Go路径可能不是最佳选择,特别是当你需要在同一台机器上同时运行多个Go版本时。使用GVM或类似的版本管理工具可以提供更灵活和安全的解决方案。
