Windows下多版本Go语言环境

365体育官网登录 ⌛ 2025-08-09 13:16:40 ✍️ admin 👁️ 628 ❤️ 712
Windows下多版本Go语言环境

在 Go 语言的日常开发过程中,我们往往需要同时使用到多个版本的 Go 语言开发不同项目 。在MacOS下,可以通过 HomeBrew 管理不同版本的 Go 语言,可以通过brew link快速切换 Go 版本。但是 Windows 无法安装 HomeBrew ,且 Windows 上的一些包管理工具有的不支持多版本管理,有的没有紧跟 Go 语言的发行(截至目前, scoop 上 Go 的版本还是1.19.3)。下面介绍两种 Windows 下多版本 Go 语言环境配置方案。

Go 官方的多版本管理Managing Go installations - The Go Programming Language

为解决不同平台使用多版本 Go 语言的需求,且尽可能不依赖于其他工具,Go 官方提供了通过go install安装额外版本的方案。

1

2

3

4

5

$ go install golang.org/dl/go1.10.7@latest

go1.10.7 download

$ go1.10.7 version

go version go1.10.7 linux/amd64d

通过go install golang.org/dl/go{{version}}@latest,修改其中的{{version}}指定使用的版本即可。后续使用不同版本的 Go 可以使用go{{version}}来代替。如果想修改默认的 Go 版本,可以通过修改 Path环境变量(Windows下),抑或是做一个软连接。

gvoidint/g: Golang Version Manager

Go 官方提供的多版本管理工具使用起来还是稍微复杂了些,不仅需要记忆下载的地址前缀,还要时刻记住版本号。好在社区也提供了一个 Go 语言的多版本管理工具g。g是一个支持在Linux、MacOS及Windows下使用的一个命令行工具,可以提供便捷的 Go 语言多版本环境的管理与切换。

安装自动化安装使用Powershell可以输入如下命令自动化安装:

1

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

手动安装g默认安装在~/.g目录下,如果需要自定义安装目录的话,则需要手动的安装并进行配置。从Release · voidint/g中下载指定版本的二进制压缩包,解压到指定目录的 bin子目录下,之后需要进行一些环境变量的配置。

1

2

3

4

5

6

$env:G_EXPERIMENTAL="true"

$env:G_HOME="{{targetDir}}\g"

$env:G_MIRROR="https://golang.google.cn/dl/"

$env:GOROOT="{{targetDir}}\g\go"

$env:GOPATH="{{pathDir}}"

$env:Path=-join("$env:G_HOME\bin", "$env:GOROOT\bin;", "$env:GOPATH\bin", "$env:Path")

由于自定义g的安装目录尚属于实验特性[1],必须先设定G_EXPERIMENTAL为true才可指定,G_HOME即为指定的g的安装目录,由于国内下载 Go 语言官方仓库的包网络不稳定,因此通过G_MIRROR可以指定镜像地址。GOROOT需指定为g安装目录下的go子目录,GOPATH则安装各自所需设定。最后再将G_HOME、GOROOT和GOPATH的bin子目录加入Path环境变量中即可。

使用查询当前可用的所有版本或是stable状态的 Go 版本

1

2

3

4

5

$ g ls-remote # list all versions of go

$ g ls-remote stable # list all stable versions of go

1.20.7

1.21.0

安装指定Go版本

1

2

3

4

5

$ g install 1.21.0

Downloading 100% [===============]

Computing checksum with SHA256

Checksums matched

Now using go1.21.0

查询已安装的Go版本

1

2

3

4

5

$ g ls

1.18.10

1.19.12

1.20.7

* 1.21.0

切换Go版本

1

2

$ g use 1.20.7

go version go1.20.7 windows/amd64

卸载指定版本

1

2

$ g uninstall 1.19.12

Uninstalled go1.19.12

清除Go安装包缓存,由于g安装后并不会主动清理安装文件,因此建议安装后执行。

1

$ g clean

更新g及卸载g

1

2

3

4

$ g self update

You are up to date! g v1.5.1 is the latest version.

$ g self uninstall

支持环境变量G_HOME自定义g目录 · Issue #18 · voidint/g

相关推荐

365体育官网登录 明明“牧师”是神职人员,为什么游戏里却拿锤子当武器?
microsoft365版本 黄贯中祖籍 黄贯中祖籍台山哪里
microsoft365版本 【Hermes愛馬仕包包Q&A懶人包】熱門顏色、包型尺寸、保值分析與購買攻略一次搞懂!
microsoft365版本 世界杯经典歌曲回顾:音乐与足球的完美交织