终于找到了一款我喜欢的安装和管理 Go 版本的工具

一直以来 , 我都习惯通过源码安装 Go 。 我是这么做的:
1)git clone Go 源码
【终于找到了一款我喜欢的安装和管理 Go 版本的工具】$ git clone 2)需要安装什么版本就切换到对应的分支 , 比如安装 1.15.x
$ git checkout -b release-branch.go1.15 origin/release-branch.go1.15如果本地之前已经存在该分支 , 直接 git checkout release-branch.go1.15 即可 。
3)将 go 整个目录复制到 /usr/local/go1.15 , 编译安装
4)创建软链:
ln -s go1.15 go之后加上环境变量等 。
如果想要切换版本 , 只需要做类似上面的步骤 , 最后将 go 这个软链指向要切换的版本 。
我这种方式存在两个问题:

  • 因为 Go1.5 实现了自举 , 对于没有安装 Go 的系统 , 需要先安装 Go1.4;
  • 每次都编译 , 还是没那么方便 , 而且如果是 Windows 系统 , 可能会有一些问题(现在的 Windows 也可能没问题了?好久没使用 Windows 了 , 使用 Windows 的朋友可以留言告知下);
之后看到 gvm[1] 这个工具 , 我试用了 , 可能是国内网络的原因 , 根本没法安装 Go , 基本卡着不动 。 此外还有一些其他的解决方案 , 比如 goenv[2] , 这是仿照 pyenv 和 rbenv 实现的 , 安装配置感觉略微有点复杂 , 直接没尝试 。
今天发现另外一个工具 , 和我手动管理多版本的思路类似 , 所以爱上了!
1、开发 goup 的初衷发音:Go Up 。 作者介绍 , 他开发了这个工具的原因:
1)操作系统发行版的包管理工具一般不会那么及时的升级 Go 到最新版本 , 特别是 Linux 发行版;
2)虽然安装和管理 Go 版本的工具不少 , 但作者认为要么存在一些问题 , 要么体验不好或缺失一些功能;(哈哈哈 , 很有道理是不是?造一个轮子 , 总是觉得别人的不够圆 , 自己的又大又圆 , 有木有?)
作者想要一个这样的工具:
  • 不需要先安装了 Go 的某个版本;(我上面的管理方案就是需要先安装某个版本)
  • 这个工具本身安装足够简单 , 最好一行命令搞定;
  • 跨平台 , 在所有操作系统运行良好 , 至少在类 Unix 系统运行良好;
  • 能方便的安装最新的 Go 版本;
  • 能方便的安装 Go 的任意版本 , 包括 tip;
  • 不会污染你的 Shell;
  • 使用 Go 语言实现;
2、安装 goup因为 goup 本身是 Go 语言实现的 , 因此他通过一个脚本下载对应系统的预编译 goup 程序 。 当前最新版本 0.0.7 (这个工具是 9 月底开发的) , 当然你也可以自己手动下载这些编译好 goup 程序 。 (如果你本地安装了 Go 版本 , 直接 go get -u -v github.com/owenthereal/goup 安装也是可以的)
终于找到了一款我喜欢的安装和管理 Go 版本的工具文章插图
一行代码安装 goup(推荐的方式):
$ curl -sSf| sh3、使用介绍看看 goup 的帮助文档:
$ goup helpThe Go installerUsage:goup [command]Available Commands:helpHelp about any commandinitInitialize the goup environment file.installInstall Go by providing a version (e.g. "1.15.2", or "tip"). If empty, use the latest version.showShow the current version of installed GoversionShow goup versionFlags:-h, --helphelp for goupUse "goup [command] --help" for more information about a command.