是否因为本地版本和项目版本不一致导致依赖老是无法正确下载?是否因为在本地安装了多个版本的go缺苦于版本管理太过麻烦?现在有个超棒的工具可以解决以上所有令人头疼的问题,那就是寄!
啊啊别走,不皮了。不过这个工具的名字确实是g(就是这么简单),其主要的实现原理就是符号链接
关于符号链接:

仓库地址:https://github.com/voidint/g

头图来源:Orange-杉87-pixiv


安装

自动化安装

linux or macos

# 建议安装前清空`GOROOT`、`GOBIN`等环境变量
$ curl -sSL https://raw.githubusercontent.com/voidint/g/master/install.sh | bash
$ echo "unalias g" >> ~/.bashrc # 可选。若其他程序(如'git')使用了'g'作为别名。
$ source ~/.bashrc # 或者 source ~/.zshrc

windows(仅支持Windows Vista及以上版本)

可在release中下载已编译的二进制文件然后设置一下环境变量(具体过程略)

使用

查询当前可供安装的stable状态的go版本

$ g ls-remote stable
  1.13.15
  1.14.7

安装目标go版本(以v1.14.7为例)

$ 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版本

前面带星号的版本为本地当前的go版本

$ g ls
  1.7.6
  1.11.13
  1.12.17
  1.13.15
  1.14.6
* 1.14.7

查询可供安装的所有go版本

$ g ls-remote
  1
  1.2.2
  1.3
  1.3.1
  ...    // 省略若干版本
  1.14.5
  1.14.6
* 1.14.7
  1.15rc1

切换到本地另一个已安装的go版本

$ g use 1.14.6
go version go1.14.6 darwin/amd64

卸载一个已安装的go版本

$ g uninstall 1.14.7
Uninstalled go1.14.7

其他一些设定

由于GFW的缘故可能会导致go版本下载不下来,可以通过G_MIRROR这一环境变量指定一个镜像站点(如:https://golang.google.cn/dl/),g则将会通过这一环境变量指定的站点来下载你需要的go版本

Last modification:September 4th, 2023 at 10:12 pm
If you think my article is useful to you, please feel free to appreciate