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
相关推荐
小钻风33661 小时前
Spring Boot 文件上传详解:深入理解 MultipartFile 的使用与原理
java·开发语言
qq_452396232 小时前
第二篇:《Go 开发环境搭建:SDK、IDE、Module 与 Hello World》
开发语言·ide·golang
天青色等烟雨..2 小时前
全流程ArcGISPro空间分析、三维建模、可视化及Python融合应用技术
开发语言·python
丰锋ff2 小时前
1.2 Qt常用基础类型
开发语言·qt
冰暮流星3 小时前
javascript之String方法介绍
开发语言·javascript·ecmascript
nianniannnn3 小时前
Qt QMessageBox知识点
开发语言·数据库·qt
故乡de云4 小时前
AWS 添加付款方式失败排查清单:卡片、银行风控与账号状态逐项定位
开发语言·php
J_yyy4 小时前
【Qt核心组件类框架】
开发语言·qt
星恒随风4 小时前
C++ STL 栈详解:stack 的使用、经典题目与简单模拟实现
开发语言·数据结构·c++·笔记·学习
运维行者_4 小时前
如何查看每个IP的带宽使用情况?NetFlow 技术实战指南
开发语言·网络·分布式·后端·架构·带宽