你好,我是 Tony Bai。

经过上一节的对 Go 设计哲学的探讨后,如果你依然决定继续 Go 语言编程学习之旅,那么欢迎你和我一起正式走进 Go 语言学习和实践的课堂。

编程不是“纸上谈兵”,它是一门实践的艺术。编程语言的学习离不开动手实践,因此学习任何一门编程语言的第一步都是要拥有一个这门编程语言的开发环境,这样我们才可以动手编码,理论与实践结合,不仅加速学习效率,还能取得更好的学习效果。

在这一讲中我们就先来学习下如何安装和配置 Go 语言开发环境。如果你的机器上还没有 Go,那么就请跟我一起选择一种适合你的 Go 安装方法吧。第一步,先来挑一个合适的 Go 版本。

选择 Go 版本

挑版本之前,我们先来看看 Go 语言的版本发布策略

如今,Go 团队已经将版本发布节奏稳定在每年发布两次大版本上,一般是在二月份和八月份发布。Go 团队承诺对最新的两个 Go 稳定大版本提供支持,比如目前最新的大版本是 Go 1.17,那么 Go 团队就会为 Go 1.17 和 Go 1.16 版本提供支持。如果 Go 1.18 版本发布,那支持的版本将变成 Go 1.18 和 Go 1.17。支持的范围主要包括修复版本中存在的重大问题、文档变更以及安全问题更新等。

基于这样的版本发布策略,在你选择版本时可以参考这几种思路:

一般情况下,我建议你采用最新版本。因为 Go 团队发布的 Go 语言稳定版本的平均质量一直是很高的,少有影响使用的重大 bug。你也不用太担心新版本的支持问题,Google 的自有产品,比如 Google App Engine(以下简称为 GAE)支持都会很快,一般在 Go 新版本发布不久后,GAE 便会宣布支持最新版本的 Go。

你还可以根据不同实际项目需要或开源社区的情况使用不同的版本。

有的开源项目采纳了 Go 团队的建议,在 Go 最新版本发布不久就将当前项目的 Go 编译器版本升级到最新版,比如 Kubernetes 项目;而有的开源项目(比如:docker 项目)则比较谨慎,在 Go 团队发布 Go 1.17 版本之后,这些项目可能还在使用两个发布周期之前的版本,比如 Go 1.15。

但多数项目处于两者之间,也就是使用次新版,即最新版本之前的那个版本。比如,当前最新版本为 Go 1.17,那么这些项目会使用 Go 1.16 版本的最新补丁版本(Go 1.16.x),直到发布 Go 1.18 后,这些项目才会切换到 Go 1.17 的最新补丁版本(Go 1.17.x)。如果你不是那么“激进”,也可以采用这种版本选择策略。

因为我们这门课是 Go 语言学习的课,所以我这里建议你直接使用 Go 最新发布版,这样我们可以体验到 Go 的最新语言特性,应用到标准库的最新 API 以及 Go 工具链的最新功能。在这一节课里我们以 Go 1.16.5 版本为例讲述一下其安装、配置和使用方法。

选定 Go 版本后,接下来我们就来看看几种常见的 Go 安装方法。

安装 Go

Go 从 2009 年开源并演化到今天,它的安装方法其实都已经很成熟了,接下来呢,我们就逐一介绍在 Linux、macOS、Windows 这三大主流操作系统上安装 Go 的方法,我们假设这些操作系统都安装在 X86-64 的平台上,首先我们来看 Linux。

在 Linux 上安装 Go

Go 几乎支持 Linux 所有的主流发行版操作系统,常见的包括 Ubuntu、CentOS(Redhat 企业版 Linux 的社区开源版)、Fedora、SUSE 等等,Go 在这些主流的 Linux 发行版操作系统上的安装方法都是一样的(当然某个发行版也可能会利用其软件安装管理器提供仅属于其自己的安装方法)。你可以参考下面这样的安装步骤。

首先,我们需要下载并解压 Go Linux 安装包:

  1. $wget -c https://golang.google.cn/dl/go1.16.5.linux-amd64.tar.gz

这里有个小提醒:虽然 Go 官方下载站点是 golang.org/dl,但我们可以用针对中国大陆的镜像站点 golang.google.cn/dl 来下载,在中国大陆地区使用大陆镜像站点可以大幅缩短下载时间。

第二步,将下载完毕的 Go 安装包解压到安装目录中:

$tar -C /usr/local -xzf go1.16.5.linux-amd64.tar.gz

执行完上面解压缩命令后,我们将在 /usr/local 下面看到名为 go 的目录,这个目录就是 Go 的安装目录,也是 Go 官方推荐的 Go 安装目录。我们执行下面命令可以查看该安装目录下的组成:

$ls -F /usr/local/go
AUTHORS          CONTRIBUTORS  PATENTS    SECURITY.md  api/  doc/         lib/   pkg/        src/
CONTRIBUTING.md  LICENSE       README.md  VERSION      bin/  favicon.ico  misc/  robots.txt  test/

不过呢,为了可以在任意路径下使用 go 命令,我们需要将 Go 二进制文件所在路径加入到用户环境变量 PATH 中(以用户使用 bash 为例),具体操作是将下面这行环境变量设置语句添加到 $HOME/.bash_profile文件的末尾:

export PATH=$PATH:/usr/local/go/bin

然后执行下面命令使上述环境变量的设置立即生效:

$source ~/.bash_profile

最后,我们可以通过下面命令验证此次安装是否成功:

$go version

如果这个命令输出了“go version go1.16.5 linux/amd64”,那么说明我们这次的 Go 安装是成功的。