Go语言学习指南:惯例模式与编程实践
上QQ阅读APP看书,第一时间看更新

1.7 保持更新

与所有编程语言一样,Go开发工具也会定期更新。Go程序是本地二进制可执行文件,不依赖单独的运行时,所以你不必担心更新开发环境会导致当前部署的程序失败。可以在同一台计算机或虚拟机上同时运行不同版本的Go编译的程序。

自Go 1.2以来,大约每6个月就会发布一个新的主要版本。根据需要,其间还会发布一些带有bug和安全补丁的小版本。鉴于快速的开发周期和Go团队对向后兼容性的承诺,Go的发布版本往往是渐进式的,而不是扩展式的。Go Compatibility Promise(https://oreil.ly/p_NMY)详细描述了Go团队如何避免破坏Go代码:任何以1开头的Go版本都不会对语言或标准库进行破坏性的修改,除非该修改是为了bug或安全修复。然而,可能会有(其实已经有了)对Go命令的标志或功能向后不兼容的更改。

尽管有这些向后兼容的保证,但bug还是会发生,所以我们自然希望确保新版本不会破坏程序。一种选择是安装一个额外的Go环境。例如,如果你正在运行1.15.2版本,但又想试试1.15.6版本,可以使用以下命令:

然后可以使用go1.15.6命令来代替go命令,查看1.15.6版本是否适用于你的程序:

一旦完成新版本Go的适配测试,就可以通过找到它的GOROOT,删除它,然后从$GOPATH/bin目录中删除新版本的二进制可执行文件来删除安装的额外的Go环境。下面是在Mac OS、Linux和BSD上的操作步骤:

当你准备更新安装在计算机上的Go开发工具时,Mac和Windows用户拥有最简单的途径。安装了brewchocolatey的用户可以使用这些工具来进行更新。那些使用https:// golang.org/dl上的安装程序的用户可以下载最新的安装程序,它在安装新版本的时候会删除旧版本。

Linux和BSD用户需要下载最新版本,将旧版本移到备份目录,解压新版本,然后删除旧版本: