Windows平台下的Go版本切换工具-g
voidint/g
g 是一个 Linux、macOS、Windows 下的命令行工具,可以提供一个便捷的多版本 go 环境的管理和切换。
在这里我们介绍一下在 windows 下的使用,涉及到我们开发所需要用到的 几个 go 项目层环境变量它们分别是 GOPATH,GOPROXY,GO111MODULE, 需要先在主页->高级系统设置->环境变量 中先设置好。
GOPATH
在GOPATH目录下,一般存放有三个目录
- src:源代码所在目录
- pkg:一般存放
go mod tidy
下载好的库缓存文件。mod,windows_amd64 - bin:Go 程序可执行文件目录,如 vscode 的各项组件 gopls,wire,goimports
而我们的项目一般保持 D:\Code\go\src\github.com\aszeta\novelsvc
这种格式方便管理,github.com 是代码平台,后面接一个作者,最后才是项目名称。
GOPROXY
这个是 go 的镜像代理设置,因为国外访问有时候并不会很稳定。那常见的几个配置是:
-
https://goproxy.io,direct
官方全球代理
-
https://mirrors.aliyun.com/goproxy,direct
阿里云
-
https://goproxy.cn,direct
七牛云
GO111MODULE
我们可以根据不同的场景开关 go mod:
GO111MODULE = on
, GO 将会强制项目使用 go mod,需要在当前 GOPATH 的 src 目录下才能运行代码go run main.go
GO111MODULE = off
,我们则不必一定需要在 GOPATH src 下面放置我们的代码。
安装 g 命令下环境变量
-
创建目录
mkdir ~/.g/bin
-
下载 release的 windows 版本的二进制压缩包, 解压之后放到~/.g/bin 目录下
-
使用编辑器在命令行下打开或者创建路径为
code $profile
,这里我们可以使用echo $profile
然后复制路径下来在其他的编辑器创建编辑。 -
编辑器在当前文本中写入 powershell 配置文件
$env:GOROOT="$HOME\.g\go" $env:Path=-join("$HOME\.g\bin;", "$env:GOROOT\bin;", "$env:Path")
-
重新打开一个命令行,运行
g
或者gvm
,则会出现使用说明。
关于 g 使用
查看当前可以安装的 go 版本
$ g ls-remote stable
1.13.15
1.14.7
安装指定的 go 版本
$ g install 1.14.7
Downloading 100% |███████████████| (119/119 MB, 9.939 MB/s) [12s:0s]
Computing checksum with SHA256
Checksums matched
Now using go1.14.7
查看所有本地安装过的 go 版本
$ g ls
1.7.6
1.11.13
1.12.17
1.13.15
1.14.6
* 1.14.7
切换到另一个已经安装的 go 版本
$ g use 1.14.6
go version go1.14.6 darwin/amd64
卸载一个已安装的 go 版本
$ g uninstall 1.14.7
Uninstalled go1.14.7
更新 g 工具的版本
$ g update
A new version of g(v1.2.2) is available
Downloading 100% |███████████████| (3.7/3.7 MB, 2.358 MB/s)
Computing checksum with SHA256
Checksums matched
Update completed
通过上述的一系列操作步骤,我们已经可以随意切换 go 版本,不用担心因工作版本与想体验新版本 Go 特性,如泛型频繁下载卸载带来的苦恼了。