Go多版本管理工具
2025-10-14 21:53:57 # tools

其实,从刚开始接触Go语言时我就在想,有没有办法方便地进行多版本切换。因为每次需要使用不同版本的 Go,都得先安装对应的安装包,再把旧版本全部卸载删除,整个过程非常麻烦。

而真正促使我寻找Go多版本管理工具的契机,是最近想在Windows7系统上运行一个用Go编写的 beacon 程序,它要求必须使用 Go 1.20环境——这让我不得不寻找一种更灵活、高效的版本管理方式。

并且如果你想尝试使用新版go的语言特性而又不污染系统环境,那么寻找Go多版本管理工具迫在眉睫。试了挺多工具的,我感觉还是 voidint/g: Golang Version Manager 适合我,下面就介绍一下使用方法。

装完从开始菜单打开 PowerShell 7(别用老图标)。

1
winget install --id Microsoft.Powershell --source winget

Windows(适用于 pwsh)

1
iwr https://raw.githubusercontent.com/voidint/g/master/install.ps1 -useb | iex

把真正的物理路径写进去,请将用户名 xxx 修改为你的用户名

1
2
$u = [Environment]::GetEnvironmentVariable('Path','User') -replace '%G_HOME%\\bin','C:\Users\xxx\.g\bin'
[Environment]::SetEnvironmentVariable('Path',$u,'User')

把真实路径写进用户Path,请将用户名 xxx 修改为你的用户名

1
2
3
4
5
6
$gorootBin = "$env:USERPROFILE\.g\go\bin"          # go.exe 实际位置
$userPath = [Environment]::GetEnvironmentVariable('Path','User')
if ($userPath -notlike "*$gorootBin*") {
[Environment]::SetEnvironmentVariable(
'Path', "$userPath;$gorootBin", 'User')
}

查看是否安装成功

1
2
3
4
5
6
7
8
9
PS C:\Users\xxx> g -v
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: true
PS C:\Users\xxx> g ls-remote

一些命令,具体看官方介绍g/README_CN.md at master · voidint/g

1
2
3
4
5
6
7
8
9
g ls-remote       // 列出远程可下载的go版本

g install 1.23.5 // 下载相应的go版本

g ls // 列出本地的所有go版本

g use 1.23.5 // 使用相应的go版本

g uninstall 1.23.5 // 卸载相应的版本

golang ide切换go版本

设置ide的本地终端为powershell 7

1
C:\Program Files\PowerShell\7\pwsh.exe

Prev
2025-10-14 21:53:57 # tools
Next