Go 版本管理与升级指南
本文将详细介绍如何使用开源工具 g 进行 Go 的版本管理及升级操作,包含完整的环境变量配置说明和旧版本处理方法。
什么是 g?
g 是一个轻量级的 Go 版本管理工具,支持多版本安装、切换和卸载。通过 g 可以:
- 一键安装/卸载不同 Go 版本
- 无缝切换项目所需 Go 版本
- 自动管理环境变量
项目地址与下载:github.com/voidint/g
最新发布版本:github.com/voidint/g/r…
Windows 安装指南
步骤 1:处理旧版 Go 安装
-
卸载原有 Go:
- 控制面板 → 程序和功能 → 找到 Go → 卸载
-
删除旧版 Go 目录(如
C:\Environment\Go,不过通过控制面板卸载时目录也跟着删除了,自己尝试的时候请注意) -
清理环境变量:
- 删除系统变量中的旧
GOROOT(如果存在的话,一般第一步的时候也会一起删了) - 编辑系统环境变量中
Path变量,删除旧版 Go 的 bin 路径(如C:\Environment\Go\bin)
- 删除系统变量中的旧
- 注意:如果你不清楚如何找到环境变量,请接着往下看,后面会详细说明
步骤 2:下载 g 安装包
- 访问 g 发布页面(可能需要科学上网)
- 下载最新版
windows-amd64.zip文件(如g-v1.8.0-windows-amd64.zip)
步骤 3:解压文件
- 创建安装目录(示例:
C:\Environment\g) - 解压下载的 ZIP 文件到该目录
- 确认目录包含
g.exe可执行文件
步骤 4:配置环境变量(详细说明)
环境变量配置在 系统环境变量 中设置:
-
打开环境变量设置:
- 按
Win + R输入sysdm.cpl并回车 - 转到 "高级" 选项卡 → 点击 "环境变量"
- 在 "系统变量" 部分操作
- 按
-
添加/修改以下变量:
| 变量名 | 值 | 详细设置步骤 |
|---|---|---|
G_MIRROR | https://golang.google.cn/dl/ | 1. 点击"新建" 2. 变量名: G_MIRROR 3. 变量值: https://golang.google.cn/dl/ |
G_HOME | C:\Environment\g | 1. 点击"新建" 2. 变量名: G_HOME 3. 变量值: C:\Environment\g |
GOROOT | %G_HOME%\go | 1. 点击"新建" 2. 变量名: GOROOT 3. 变量值: %G_HOME%\go |
GOBIN | %GOROOT%\bin | 1. 点击"新建" 2. 变量名: GOBIN 3. 变量值: %GOROOT%\bin |
G_EXPERIMENTAL | true | 1. 点击"新建" 2. 变量名: G_EXPERIMENTAL 3. 变量值: true |
- 修改
Path变量:
-
在系统变量中找到
Path→ 点击"编辑" -
点击"新建"添加两条路径:
%G_HOME%(g 工具路径)%GOBIN%(Go 命令路径)
确定后,重新打开cmd
步骤 5:验证安装
打开新的命令提示符执行:g --version
C:\Users\xxx>g --version
g version 1.8.0
Built: 2025-07-11 13:24:15
Git branch: master
Git commit: a82e89cc
Go version: go1.20.14
OS/Arch: windows/amd64
Experimental: false
管理 Go 版本
注:后续操作建议都在管理员cmd下执行
安装 Go 版本
# 安装最新稳定版
g install latest
# 安装指定版本(如 1.22.2)
g install 1.22.2
注意:在执行安装命令的时候可能会遇见以下情况
C:\Users\XXX>g install latest
[g] Resource(Https://Golang.google.cn/Dl/Go1.25rc2.windows-Amd64.zip) download failed ==> open C:\Users\My\Environment\g\downloads\go1.25rc2.windows-amd64.zip: Access is denied.
遇见了就以管理员身份打开cmd,重新下载即可
C:\Windows\system32>g install latest
[g] Url "https://golang.google.cn/dl/" is unreachable ==> Get "https://golang.google.cn/dl/": tls: failed to verify certificate: x509: certificate has expired or is not yet valid:
C:\Windows\system32>g install latest
Downloading 100% [===============] (67/67 MB, 17 MB/s)
Computing checksum with SHA256
Checksums matched
Now using go1.25rc2 windows/amd64
此时在打开我们的 g 目录,可以看见多出了这三个新文件夹了
注意:后续操作大部分情况下都需要在管理员 cmd 中执行
查看已安装版本
g ls
输出示例:
* 1.22.2
1.25rc2
其中的 * 表示当前正在使用的 Go 版本
切换 Go 版本
注意:这里也要以管理员身份在cmd中执行
g use 1.25rc2
:: 在用户cmd中执行提示:
C:\Users\XXX>g use 1.25rc2
[g] Symlink C:\Users\XXX\Environment\g\versions\1.25rc2 C:\Users\XXX\Environment\g\go: A required privilege is not held by the client.
:: 在管理员cmd中执行提示:
C:\Windows\system32>g use 1.25rc2
Now using go1.25rc2 windows/amd64
卸载 Go 版本
卸载命令同切换
g uninstall 1.22.2
升级到最新版
g install latest
g use latest
补充:Goland 配置
通过 g 管理 Go 版本后,Goland 可能会找不到 Go 的文件。这很正常,不仅如此,虽然 Goland 会提示未定义的GOROOT,但是你还是能运行程序的(憋笑)。直接上操作吧
-
打开环境变量,在用户变量中,打开
path,更新最新的go\bin目录如图所示: -
确定后重启Goland,进行配置修改
- 打开 Goland,进入设置File > Settings (Windows/Linux)
- 导航到:Go > GOROOT
- 删除所有旧配置,点击 + 添加:选择 Add System GOROOT → 从下拉菜单中选择
C:\XXX\Environment\g\go - 等待Goland编译完配置,搞定
注意:
- 尽管你改了后,Goland 会重置索引,建立新联系,从而保证使用 Go 版本如我们所期望,但如果你点开 GOROOT,会发现版本不会变化,并且你的
go.mod里面不会显示版本,这个个人感觉是无伤大雅的(如果有大佬知道会有什么隐患可以给大家说说)。 - 此外,无论你是通过 Goland 终端,还是 cmd 切换 Go 版本,Goland都能正确识别索引
写在末尾的话
补充:Windows下保留旧版 Go 并与 g 工具集成(未实现)
本来这块想写的,但是折腾保留旧版本,不如删了后重下来得快,效率才是第一位,所以就没写了。如果有大佬知道的话,可以给笔者说说如何实现,或者在评论里留言一下。
此外,以后我会更新如何在 Linux 环境下进行Go版本管理与升级,毕竟大部分开发时间都会和 Linux 系统打交道,这是个绕不过去的坎。当然,如果老哥们有推荐的文章,也欢迎留言推荐一下,少走弯路总归是好的,写Windows下更新的时候我还是踩了不少坑的,特别是最开始我想保留旧版本的时候(悲)。
碎碎念结束,祝你有所收获,诸君共勉!
25-7-26新增:go Install可能存在的问题
起因,当我想学习GoFrame框架的时候,我参考官方文档下载官方推荐的安装框架工具
框架提供的开发工具为开发者提供了便捷的开发指令简化开发工作,提供了例如工程脚手架、代码自动生成、工具及框架更新等实用命令。工具下载地址: github.com/gogf/gf/rel…
在Windows环境执行命令安装后:
go install github.com/gogf/gf/cmd/gf/v2@latest
提示:
gf : 无法将“gf”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼
写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
这里直接说解决方案
第一步,打开环境变量,GOBIN改为绝对目录C:\Users\XXX\go\bin,此时 g 命令可用,但是 Go 命令不可用,即无法识别到 go
第二步,系统path中,新增变量 %GOROOT%\bin
第三步,重启环境,打开 Goland,重新下载后,无输出即表示安装完毕,此时可以再Goland终端内出入 gf -v 查看安装信息了
PS D:\Go-Project\GoFrame-Project> gf -v
v2.9.0
Welcome to GoFrame!
Env Detail:
Go Version: go1.23.11 windows/amd64
GF Version(go.mod):
github.com/gogf/gf/v2@v2.9.0
CLI Detail:
Installed At: C:\Users\XXX\go\bin\gf.exe
Built Go Version: go1.23.11
Built GF Version: v2.9.0
Others Detail:
Docs: https://goframe.org
Now : 2025-07-26T23:58:31+08:00
注意:最新版本的Go 1.25rc2不支持gf,会出现以下错误
# golang.org/x/tools/internal/tokeninternal
C:...go\pkg\mod\golang.org\x\tools@v0.21.1...\tokeninternal.go:64:9: invalid array length -delta * delta (constant -256 of type int64)
说的比较潦草,但是按照过程是能解决问题的,如果有新的问题出现,也欢迎大家留言指出,感谢!