go使用voidint实现版本切换

1,下载版本

https://github.com/voidint/g/releases/tag/v1.8.0

2,查看版本

bash 复制代码
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

3,设置国内镜像

bash 复制代码
setx G_MIRROR "https://golang.google.cn/dl/"
setx G_EXPERIMENTAL "true"

4,把 g.exe 所在目录加到环境变量

bash 复制代码
$env:Path += ";$HOME\.g"
[Environment]::SetEnvironmentVariable("Path", $env:Path, "User")

5,下载指定的版本并使用

bash 复制代码
# 下载
g install 1.24.5 

# 使用
g use 1.24.5

# 查看版本
go version

常用命令

bash 复制代码
g ls-remote          # 查看所有可安装版本
g install 1.24.5      # 安装 go1.24.5
g install 1.25.5      # 安装 go1.25.5

g ls                  # 查看已安装
g use 1.24.5          # 一键切到 1.24.5
g use 1.25.5          # 一键切到 1.25.5

go version            # 验证

一次性配置:永久自动切换(PowerShell 执行)

1) 先清理旧的乱配置(避免冲突)

bash 复制代码
# 删掉旧的 user Path 里所有带 .g 的行(手动也行)

[Environment]::SetEnvironmentVariable("Path", ($env:Path -split ';' | Where-Object { $_ -notmatch '\.g' }) -join ';', "User")

2)创建永久软链接(管理员 PowerShell,只做一次)

bash 复制代码
# 删掉旧的 current/go(如果有)
Remove-Item "$env:USERPROFILE\.g\versions\current" -Force -ErrorAction SilentlyContinue
Remove-Item "$env:USERPROFILE\.g\go" -Force -ErrorAction SilentlyContinue
bash 复制代码
# 建两个软链接:versions/current → 1.24.5;.g/go → current
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.g\versions\current" -Target "$env:USERPROFILE\.g\versions\1.24.5"
New-Item -ItemType SymbolicLink -Path "$env:USERPROFILE\.g\go" -Target "$env:USERPROFILE\.g\versions\current"

3)配置永久环境变量(核心!以后永远不用改)

新建用户变量 GOROOT

Environment::SetEnvironmentVariable("GOROOT", "$env:USERPROFILE.g\go", "User")

把 %GOROOT%\bin 加到用户 Path 最前面

newPath="newPath = "newPath="env:GOROOT\bin;$env:Path"

Environment::SetEnvironmentVariable("Path", $newPath, "User")

实现自动切换版本

Linux 下配置volidint

下载地址

bash 复制代码
https://github.com/voidint/g/releases/download/v1.8.0/g1.8.0.linux-arm64.tar.gz

一、解压 g(你已下载,直接执行)

1. 先创建目录

bash 复制代码
mkdir -p ~/.g/bin

2. 解压到~/.g/bin

bash 复制代码
tar -zxvf g1.8.0.linux-amd64.tar.gz -C ~/.g/bin

3. 赋予执行权限

bash 复制代码
chmod +x ~/.g/bin/g

二、配置环境变量(自动切换版本核心)

打开配置文件(bash 通用)

bash 复制代码
nano ~/.bashrc

在文件 最后一行 粘贴下面内容

bash 复制代码
# g version manager
export G_HOME=$HOME/.g
export PATH=$G_HOME/bin:$PATH

# Go 自动切换软链接
export GOROOT=$G_HOME/go
export PATH=$GOROOT/bin:$PATH

保存退出

Ctrl+O回车Ctrl+X

立即生效

bash 复制代码
source ~/.bashrc

三、验证 g 是否安装成功

bash 复制代码
g --version

四、配置国内镜像(解决下载超时)

bash 复制代码
echo "export G_MIRROR=https://golang.google.cn/dl/" >> ~/.bashrc
source ~/.bashrc

五、安装 Go 1.24.5

bash 复制代码
g install 1.24.5

六、切换版本(自动生效,不用改 PATH)

bash 复制代码
g use 1.24.5

七、查看 Go 版本(自动对应)

bash 复制代码
go version
go version go1.24.5 linux/amd64
相关推荐
Rain5091 分钟前
2.1 Nest.js 项目初始化与模块化架构
开发语言·前端·javascript·后端·架构·数据分析·node.js
嵌入式小站3 分钟前
STM32 可移植教程 02:按键状态机,消抖、长按、释放一行也不用多写(实战篇)
chrome·vscode·stm32·单片机·嵌入式硬件
小熊美家熊猫系统20 分钟前
电子合同技术实现与合规实践
java·开发语言·分布式
ytttr87322 分钟前
C# 定时数据库备份工具
开发语言·数据库·c#
skywalk81631 小时前
言知项目后续方向建议
开发语言·学习·编程
拉勾科研工作室1 小时前
区块链工程毕业论文题目【249个】
开发语言·javascript
z落落2 小时前
C#WinForm控件实战:Panel与单选框动态创建
开发语言·c#
ptc学习者2 小时前
python 中描述符@property property 大概的样子
开发语言·python
zmzb01032 小时前
Python课后习题训练记录Day129
开发语言·python
张忠琳2 小时前
【Go 1.26.4】Golang Map 深度解析
开发语言·后端·golang