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.7Downloading 100% |███████████████| (119/119 MB, 9.939 MB/s) [12s:0s]Computing checksum with SHA256Checksums matchedNow 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.6go version go1.14.6 darwin/amd64

卸载一个已安装的 go 版本

$ g uninstall 1.14.7Uninstalled go1.14.7

更新 g 工具的版本

$ g updateA new version of g(v1.2.2) is availableDownloading 100% |███████████████| (3.7/3.7 MB, 2.358 MB/s)Computing checksum with SHA256Checksums matchedUpdate completed

通过上述的一系列操作步骤,我们已经可以随意切换 go 版本,不用担心因工作版本与想体验新版本 Go 特性,如泛型频繁下载卸载带来的苦恼了。