终于找到了一款我喜欢的安装和管理 Go 版本的工具( 二 )
比如我想试试还不支持 Module 的版本:1.10.8
$ goup install 1.10.8Downloaded0.0% (3320 / 87999054 bytes) ...Downloaded3.7% ( 3260416 / 87999054 bytes) ...Downloaded11.7% (10338304 / 87999054 bytes) ...Downloaded21.1% (18563072 / 87999054 bytes) ...Downloaded27.9% (24592384 / 87999054 bytes) ...Downloaded34.8% (30588928 / 87999054 bytes) ...Downloaded41.6% (36618240 / 87999054 bytes) ...Downloaded48.4% (42549248 / 87999054 bytes) ...Downloaded55.2% (48611328 / 87999054 bytes) ...Downloaded62.1% (54640640 / 87999054 bytes) ...Downloaded68.9% (60669952 / 87999054 bytes) ...Downloaded75.8% (66666496 / 87999054 bytes) ...Downloaded82.6% (72695808 / 87999054 bytes) ...Downloaded88.8% (78135296 / 87999054 bytes) ...Downloaded93.3% (82100224 / 87999054 bytes) ...Downloaded94.4% (83083264 / 87999054 bytes) ...Downloaded98.7% (86851584 / 87999054 bytes) ...Downloaded 100.0% (87999054 / 87999054 bytes)INFO[0016] Unpacking /Users/xuxinhua/.go/go1.10.8/go1.10.8.darwin-amd64.tar.gz ...INFO[0020] Success: go1.10.8 downloaded in /Users/xuxinhua/.go/go1.10.8INFO[0020] Default Go is set to 'go1.10.8'
你当前系统的 Go 版本就是 1.10.8 了 。 如果之前安装过 , 上面的下载过程就没有了:
$ goup install 1.10.8INFO[0000] go1.10.8: already downloaded in /Users/xuxinhua/.go/go1.10.8INFO[0000] Default Go is set to 'go1.10.8'$ goup showgo1.10.8
尽情地享受吧!
4、工作原理这个工具的灵感来自 Rust 的工具:rustup[3] 。
它的工作原理很简单 , 在 $HOME/.go 目录下创建对应的版本目录 , 然后在这个目录创建一个软链 current 来控制当前使用哪个 Go 版本 。 这个思路和我一直源码安装的思路类似 。 唯一区别是 , 它是从 dl.google.com 上下载对应编译好的版本 。 但 tip 版本 , 则需要 clone Go 源码 , 进行编译安装 , 因此要求有 Go 环境 。
我本地 $HOME/.go 下的文件信息:
lrwxr-xr-x1 xuxinhuastaff28 109 17:16 current -> /Users/xuxinhua/.go/go1.10.8-rw-r--r--1 xuxinhuastaff57 109 16:46 envdrwxr-xr-x21 xuxinhuastaff672 109 17:14 go1.10.8drwxr-xr-x22 xuxinhuastaff704 109 10:03 go1.14.9drwxr-xr-x22 xuxinhuastaff704 109 10:02 go1.15.2drwxr-xr-x2 xuxinhuastaff64 109 17:10 gotip
5、存在的一些问题这个工具才出来十几天 , 试用下来 , 还存在一些问题:
- 安装最新版本 , 需要知道当前最新版本是哪个?这是从获取的 , 但这个网址咱们无法访问;同样的道理 , 安装 tip 版本 , 源码是从获取的 。 因此目前大陆还无法使用;不过我已经给作者提了 issue , 应该很快就会支持;
- 缺失一些功能 。 比如我想安装某个版本 , 比如 1.12.x , 但我希望安装的是 1.12 系列的最新版本 , 这时候你只能去找 1.12 的最新版本是哪个 。
- 。。。
- goup list 和 goup listall
- goup uninstall
对了 , 至于为什么会需要管理多版本 , 我想很多人还会有这样的需求吧?!你为什么需要呢?欢迎留言 。
参考资料[1]
gvm:
[2]
goenv:
[3]
rustup:
文章插图
- vivo一款新机现身跑分网!运存和系统信息通通曝光
- 2021 年,微软 Windows 的 ARM 转型终于能成了?
- 微信又迎来更新!你们想要的功能终于来了
- Clearbot:一款能自动在水上追踪收集垃圾的机器人
- 联想Yoga AIO 7发布 一款设计巧妙的27英寸旋转式一体电脑
- 1月12日!荣耀V40系列终于要来了!将采用库存“芯片”
- 微信也准备“收费”了?2大业务开始付费,网友:终于要来了
- 广受诟病的Edge同步短板终于补齐:现可同步历史记录
- 继iQOO、华为官宣后,雷军终于坐不住了,为小米11做准备
- 显示器|LG 将在CES 2021上展示一款可变身曲面屏OLED游戏显示器