Windows平台下的Go版本切换工具-g

打印 上一主题 下一主题

主题 842|帖子 842|积分 2526

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 的镜像代理设置,因为国外访问有时候并不会很稳定。那常见的几个配置是:
七牛云
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 配置文件
    1. $env:GOROOT="$HOME\.g\go"
    2. $env:Path=-join("$HOME\.g\bin;", "$env:GOROOT\bin;", "$env:Path")
    复制代码
  • 重新打开一个命令行,运行 g或者gvm,则会出现使用说明。
关于 g 使用

查看当前可以安装的 go 版本
  1. $ g ls-remote stable
  2.   1.13.15
  3.   1.14.7
复制代码
安装指定的 go 版本
  1. $ g install 1.14.7
  2. Downloading 100% |███████████████| (119/119 MB, 9.939 MB/s) [12s:0s]
  3. Computing checksum with SHA256
  4. Checksums matched
  5. Now using go1.14.7
复制代码
查看所有本地安装过的 go 版本
  1. $ g ls
  2.   1.7.6
  3.   1.11.13
  4.   1.12.17
  5.   1.13.15
  6.   1.14.6
  7. * 1.14.7
复制代码
切换到另一个已经安装的 go 版本
  1. $ g use 1.14.6
  2. go version go1.14.6 darwin/amd64
复制代码
卸载一个已安装的 go 版本
  1. $ g uninstall 1.14.7
  2. Uninstalled go1.14.7
复制代码
更新 g 工具的版本
  1. $ g update
  2. A new version of g(v1.2.2) is available
  3. Downloading 100% |███████████████| (3.7/3.7 MB, 2.358 MB/s)
  4. Computing checksum with SHA256
  5. Checksums matched
  6. Update completed
复制代码
通过上述的一系列操作步骤,我们已经可以随意切换 go 版本,不用担心因工作版本与想体验新版本 Go 特性,如泛型频繁下载卸载带来的苦恼了。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连密封材料

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表