Golang 多版本管理(g 工具)
一、前言
由于某种原因,需要使用多种版本的 Golang,发现网络上一些发布时期较新的教程,却还是和早期的教程相似,故写一篇记录一下 Windows 如何小白式安装 g 工具,管理多版本 Golang。
二、下载
官方 github 下载地址:
下载完成后,是一个压缩包,可以自己决定解压位置。(笔者解压到 E:\g 位置)
三、设置环境变量
设置用户环境变量还是系统环境变量看个人选择
①设置 g 的下载镜像
G_MIRROR = https://golang.google.cn/dl/ (支持设置多个镜像站点地址)
②设置 g 的工作目录(也就是 g.exe 的所在目录)
③设置 Go 的根目录
④设置 Go 安装位置
将 G_EXPERIMENTAL 设置为 true 的意思是:将 Go 版下载到 g.exe 的同级目录下。该项不设置也行,g 会下载 Go 到 C盘中。
⑤配置 g 和 Go 的环境变量
注意:如果原来有为 Go 配置环境变量,需要删除原本的环境变量。
配置完就可以开始使用了
四、g 命令
一些常用的 g 命令:
- g ls 查询已安装的 go 版本
- g ls-remote 查询可供安装的所有 go 版本
- g ls-remote stable 查询当前可供安装的stable状态的 go 版本
- g install 1.14.7 安装目标 go 版本1.14.7 (第一次下载,要用管理员权限运行 cmd 或 powershell)
- g use 1.21.5 切换到另一个已安装的 go 版本
- g uninstall 1.14.7 卸载一个已安装的 go 版本
- g clean 清空 go 安装包文件缓存
- g version 查看 g 版本信息
- g self update 更新 g 软件本身
- g self uninstall 卸载 g 软件本身
- ...
五、可能遇到的一些问题
一、我原来下载的 Go 要卸载重下吗?能用 g 管理吗?
不需要重下也能用 g 管理。可以将原本的 Go 文件夹重命名为 Go 的版本号,然后将其直接移到 versions 文件夹中,就可以直接使用 g 管理。(versions 文件夹是使用 g 第一次下载 Go 后,g 设置的。如果G_EXPERIMENTAL = true,那么 versions 就在 g.exe 的同级目录中。)
二、我切换了其他版本的 Go,为什么 vscode 还是原来版本
可能是 vscode 中的配置文件指定了 Go 的根目录。可以通过 Go 的扩展设置,查看配置文件是否有设置(默认是不设置的),如果设置了可以删去。
三、下载了版本低的 Go,vscode调试报错(如下图)怎么做?
vscode 调试 Go 利用的是 Delve 工具,最新版本的 Delve 最低只支持 1.19 版本的 Go。解决方法有两种:
一、根据提示信息,到 launch.json 文件设置 "--check-go-version=false"
{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Launch Package", "type": "go", "request": "launch", "mode": "auto", "program": "${fileDirname}\\${fileBasenameNoExtension}.go", "dlvFlags": [ "--check-go-version=false" ] }, ] }
二、还有一种方法是安装旧版本的 Delve (具体步骤尚未尝试,后续待更新)
安装方式:go install github.com/go-delve/delve/cmd/dlv@v1.3.0 (Delve版本)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!