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
相关推荐
aramae6 小时前
模拟实现strcmp()(C语言)
c语言·开发语言·后端
泡海椒7 小时前
PDF 表格样式优化:jquick-pdf 边框、圆角、背景色
java·开发语言·pdf
tokenKe8 小时前
Tencent BrowserSkill :让 AI Agent 借用你的真实浏览器| 已登录浏览器与编码 Agent 之间的本地桥 |SSP
chrome·开源·github
Beyond_System|系统之外8 小时前
【学编程】Python基础编程题100道(21-60)
开发语言·python·算法
景熙55238 小时前
15.Java 8 Stream 流入门到实战
java·开发语言·数据结构
Bruce_Liuxiaowei11 小时前
Python 实例赋值遮蔽类属性:一个从不报错的静默陷阱
开发语言·python·语法糖
aramae12 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
五彩小白13 小时前
GO语言装饰器语法
golang
夏天要喝冰可乐15 小时前
一处写作,多平台分发:我给掘金做了一款开源 Chrome 插件
前端·chrome·vibecoding
码行山野赴时序归途15 小时前
链表家族收官篇:循环链表
c语言·开发语言·数据结构·链表