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
相关推荐
JPower_mr.g3 分钟前
SmartCall 音色管理技术解析:基于 SPI 的可扩展音色注册架构
java·开发语言·人工智能·ai·架构·开源
FfHUCisI8 分钟前
Go 性能分析工具 pprof:CPU、Heap 与 Goroutine 实战
数据库·golang
源图客17 分钟前
浏览器开发者工具使用
开发语言·php
念何架构之路38 分钟前
go-grpc核心抽象接口
开发语言·后端·golang
kimnoic39 分钟前
Python操作Git命令的详细指南
开发语言·python
Frag0ut1 小时前
Chrome数据备份指南:本地备份还原书签密码与扩展配置工具
chrome·google·谷歌浏览器·数据同步·备份工具·配置迁移·书签密码备份
kimnoic1 小时前
Python数据库sqlite3图文实例详解
开发语言·python
小小龙学IT1 小时前
etcd 深度解析:Go 分布式一致性 KV 存储与 Raft 共识实战
分布式·golang·etcd
谢亮_vipxieliang1 小时前
Go Gin 中间件与参数验证:从入门到实战
中间件·golang·gin
老王爱玩车1 小时前
文件操作从打开到缓冲区
c语言·开发语言·学习