在 Go 语言的日常开发过程中,我们往往需要同时使用到多个版本的 Go 语言开发不同项目 。在MacOS下,可以通过 HomeBrew 管理不同版本的 Go 语言,可以通过brew link
快速切换 Go 版本。但是 Windows 无法安装 HomeBrew ,且 Windows 上的一些包管理工具有的不支持多版本管理,有的没有紧跟 Go 语言的发行(截至目前, scoop 上 Go 的版本还是1.19.3
)。下面介绍两种 Windows 下多版本 Go 语言环境配置方案。
Go 官方的多版本管理
为解决不同平台使用多版本 Go 语言的需求,且尽可能不依赖于其他工具,Go 官方提供了通过go install
安装额外版本的方案。
|
|
通过go install golang.org/dl/go{{version}}@latest
,修改其中的{{version}}
指定使用的版本即可。后续使用不同版本的 Go 可以使用go{{version}}
来代替。如果想修改默认的 Go 版本,可以通过修改 Path
环境变量(Windows下),抑或是做一个软连接。
g
Go 官方提供的多版本管理工具使用起来还是稍微复杂了些,不仅需要记忆下载的地址前缀,还要时刻记住版本号。好在社区也提供了一个 Go 语言的多版本管理工具g
。g
是一个支持在Linux、MacOS及Windows下使用的一个命令行工具,可以提供便捷的 Go 语言多版本环境的管理与切换。
安装
自动化安装
使用Powershell可以输入如下命令自动化安装:
|
|
手动安装
g
默认安装在~/.g
目录下,如果需要自定义安装目录的话,则需要手动的安装并进行配置。从Release · voidint/g中下载指定版本的二进制压缩包,解压到指定目录的 bin
子目录下,之后需要进行一些环境变量的配置。
|
|
由于自定义g
的安装目录尚属于实验特性[1],必须先设定G_EXPERIMENTAL
为true
才可指定,G_HOME
即为指定的g
的安装目录,由于国内下载 Go 语言官方仓库的包网络不稳定,因此通过G_MIRROR
可以指定镜像地址。GOROOT
需指定为g
安装目录下的go
子目录,GOPATH
则安装各自所需设定。最后再将G_HOME
、GOROOT
和GOPATH
的bin
子目录加入Path
环境变量中即可。
使用
查询当前可用的所有版本或是stable
状态的 Go 版本
|
|
安装指定Go版本
|
|
查询已安装的Go版本
|
|
切换Go版本
|
|
卸载指定版本
|
|
清除Go安装包缓存,由于g
安装后并不会主动清理安装文件,因此建议安装后执行。
|
|
更新g
及卸载g
|
|