使用 g 来进行 golang 多版本管理
最近多线操作同时在弄好几个项目,正好几个项目的 golang 版本又不太一样,于是在寻找类似 python vitualenv 或者 conda 的环境管理工具。
最开始找到的就是官方的解决方案 golang/dl, golang/dl 维护了自1.5 以来到当前最新版本 1.19 beta 的所有软件包。我们可以直接
go get golang.org/dl/go1.17.3
一个软件包来进行覆盖安装。这种其实不是我想要的解决方案,我希望一个工具可以帮组合我来回切换我的软件版本,并且帮我管理好依赖关系。
于是我找到了 g
没错。。这个仓库就叫 g https://github.com/voidint/g
参考 repo readme 完成安装好我们可以来检验一下 g 是否满足需求。其实 g 就是在官方的 golang/dl 上包了一层。
我们使用
g ls-remote
可以获取到现在官方支持的所有 golang 版本。这些其实都是 dl 提供的支持。
使用 g ls 就可以看到本地已经安装的 golang 版本了,然后用 g use 就可以选择想要使用的版本进行切换。
使用 g install 1.19.1 安装想要安装的远端支持的版本。个人觉得非常赞,记录一下。
Reference:
https://github.com/voidint/g