在 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
| |