在学习和使用 Go 语言时,正确的安装和配置是非常重要的一步。本文将介绍如何在不同操作系统上安装 Go 语言,并讨论一些常见的配置选项,帮助读者更好地了解和使用 Go 语言。无论是初学者还是有一定经验的开发者,都能从本文中获得有用的信息和指导,使他们能够顺利地开始使用 Go 语言进行开发。
文章目录
- 1、选择 Go 版本
- 2、Go 语言的安装
- 2.1、下载
- 2.2、安装
- 2.2.1、Linux 下的 Go 语言安装
- 2.2.2、Mac 下的 Go 语言安装
- 2.2.3、Windows下的 Go 语言安装
- 3、安装多个 Go 版本
- 3.1、方法一:重新设置 PATH 环境变量
- 3.2、方法二:go get 命令
- 3.3、方法三:go get 命令安装非稳定版本
- 4、Go 的基础配置
1、选择 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 版本稳定且得到及时支持。
一般情况下,我建议你采用最新版本。Go 团队发布的稳定版本质量一直很高,极少出现影响使用的重大 bug。你也不用担心新版本的支持问题,Google 的自有产品如 Google App Engine(GAE)通常会在新版本发布后很快宣布支持最新版本的 Go。
当然,你也可以根据实际项目需求或开源社区的情况选择不同的版本。有些开源项目会迅速采用最新版本。例如,Kubernetes 项目通常在 Go 新版本发布后不久就升级其编译器版本。而另一些项目,如 Docker,较为谨慎,可能在 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 安装方法
2、Go 语言的安装
2.1、下载
Go 语言官方下载地址:https://golang.google.cn/dl/
2.2、安装
2.2.1、Linux 下的 Go 语言安装
- 执行以下命令, 先删除之前安装的 go 版本, 一般在
/usr/local/go
目录; 然后把之前下载的压缩包解压到/usr/local/
目录:
$ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.22.2.linux-amd64.tar.gz
注意:
- 一定要删掉原目录, 否则解压后混杂在一起会出问题.
- 如果提示权限不够, 需要以root权限(sudo)执行命令.
- 将 go 安装路径加入环境变量, 这样能找到它. 可以在你的
/home
目录下的.profile
或者.bashrc
文件里加入一句:
export PATH=$PATH:/usr/local/go/bin
然后在 shell 中执行命令来使其生效:
$ source $HOME/.profile
或者
$ source $HOME/.bashrc
- 在 shell 中验证 go 成功安装了:
$ go version
输出类似:
go version go1....
2.2.2、Mac 下的 Go 语言安装
- 执行以下命令, 先删除之前安装的go版本, 一般在
/usr/local/go
目录.
$ rm -rf /usr/local/go
- 双击下载的包进行安装.安装器会把 Go 安装到
/usr/local/go
目录, 并且自动把/usr/local/go/bin
目录写入$PATH环境变量. - 重启或打开新的终端, 用以下命令验证:
$ go version
2.2.3、Windows下的 Go 语言安装
- 确认原来的 go 目录删干净了, 一般在 Program Files 或 Program Files (x86) 目录下, 有则删掉;
- 双击下载的安装 msi 文件, 自动安装好了.
- 打开 cmd, 用以下命令验证:
$ go version
3、安装多个 Go 版本
一般来说,Go 初学者安装最新版本就足够了。但随着 Go 编程的深入,可能会需要使用多个 Go 版本。例如,一个版本用于学习或本地开发,另一个版本用于生产构建。
安装多个 Go 版本其实很简单,这里介绍三种方法:
3.1、方法一:重新设置 PATH 环境变量
你只需要将不同版本的 Go 安装在不同路径下,然后将它们的 Go 二进制文件的所在路径加入到 PATH 环境变量中就可以了。
我们以 Linux 环境为例,在前面介绍 Go 标准安装方法的时候,我们已经将 Go 1.16.5 版本安装到了 /usr/local/go
下面,也将 /usr/local/go/bin
这个路径加入到了 PATH 路径下了,当前状态我们在任意路径下敲入 go,执行的都是 Go 1.16.5 版本对应的 Go 二进制文件。
那这个时候,如果我们想再安装一个 Go 1.15.13 版本要怎么办呢?首先,你需要按照标准步骤将 Go 1.15.13 安装到事先建好的 /usr/local/go1.15.13
路径下:
$mkdir /usr/local/go1.15.13
$wget -c https://golang.google.cn/dl/go1.15.13.linux-amd64.tar.gz
$tar -C /usr/local/go1.15.13 -xzf go1.15.13.linux-amd64.tar.gz
接下来,我们来设置 PATH 环境变量,将原先 $HOME/.profile
中的 PATH 变量的值由:
export PATH=$PATH:/usr/local/go/bin
改为:
export PATH=$PATH:/usr/local/go1.15.13/go/bin
这样通过执行 source 命令重新使 PATH 环境变量生效后,我们再执行 ·go version· 命令,会得到下面这样的结果:
$go version
go version go1.15.13 linux/amd64
这样,我们已经安装好两个 Go 版本了。这之后,我们如果要在 Go 1.16.5 和 Go 1.15.13 两个版本之间切换,只需要重新设置 PATH 环境变量并生效即可。
不过,你可能依然会觉得通过重新设置 PATH 环境变量的方法有些麻烦。没关系,Go 官方也提供了一种在系统中安装多个 Go 版本的方法,下面我们就来看一下第二种方法。
3.2、方法二:go get 命令
使用这种方法安装不同的 Go 版本有一个前提条件,那就是当前系统中已经通过标准方法安装过某个版本的 Go。接下来,我们以 Linux 环境为例,假设目前系统中已经安装了 Go 1.16.5 版本,我们还想再安装一个 Go 1.15.13 版本。按照 Go 官方方法,我们可以这样来做:
首先,将 $HOME/go/bin
加入到 PATH
环境变量中并生效,即便这个目录当前不存在也没关系。:
export PATH=$PATH:/usr/local/go/bin:~/go/bin
然后,我们要执行下面这个命令安装 Go 1.15.13 版本的下载器:
$go get golang.org/dl/go1.15.13
这个命令会将名为 Go 1.15.13 的可执行文件安装到 $HOME/go/bin
目录下,它是 Go 1.15.13 版本的专用下载器。接下来,我们执行 Go 1.15.13 的下载安装命令:
$go1.15.13 download
Downloaded 0.0% ( 16384 / 121120420 bytes) ...
Downloaded 1.8% ( 2129904 / 121120420 bytes) ...
Downloaded 84.9% (102792432 / 121120420 bytes) ...
Downloaded 100.0% (121120420 / 121120420 bytes)
Unpacking /root/sdk/go1.15.13/go1.15.13.linux-amd64.tar.gz ...
Success. You may now run 'go1.15.13'
现在,我们看到这个命令下载了 go1.15.13.linux-amd64.tar.gz
安装包,并将其安装到 $HOME/sdk/go1.15.13
目录下。下载安装结束后,我们就可以利用带有版本号的 go
命令来使用特定版本的 Go。
$go1.15.13 version
go version go1.15.13 linux/amd64
同样的,我们也可以通过下面这个命令查看特定 Go 版本的安装位置:
$go1.15.13 env GOROOT
/root/sdk/go1.15.13
3.3、方法三:go get 命令安装非稳定版本
除了 Go 团队正式发布的稳定版本(如 Go 1.16.5 或 Go 1.15.13),我们还可以通过 go get
安装 Go 团队正在开发的非稳定版本(Unstable Version),包括每个稳定版发布前的 beta 版本或当前最新的 tip 版本。这些非稳定版本可以让开发人员提前体验即将加入稳定版本的新特性。
不过,在中国大陆地区,通过 go get
安装不同的 Go 版本可能会因为网络问题而失败。如果你已经解决了网络问题,那么安装非稳定版本的步骤其实与安装稳定版本类似。现在,我们以 Go 1.17beta1 和 Go Tip 版本为例,演示它们的安装步骤和验证方法:
首先我们来看 Go 1.17beta1:
$go get golang.org/dl/go1.17beta1
$go1.17beta1 download
Downloaded 0.0% ( 3272 / 134470397 bytes) ...
Downloaded 21.4% ( 28819248 / 134470397 bytes) ...
Downloaded 58.1% ( 78069168 / 134470397 bytes) ...
Downloaded 100.0% (134470397 / 134470397 bytes)
Unpacking /root/sdk/go1.17beta1/go1.17beta1.linux-amd64.tar.gz ...
Success. You may now run 'go1.17beta1'
$go1.17beta1 version
go version go1.17beta1 linux/amd64
接着来看 Go Tip 版本:
$go get golang.org/dl/gotip
$gotip download
当然,go get
为我们安装 tip 版本提供了极大便利。要知道,以前如果我们想安装 tip 版本,需要手动下载 Go 源码并自行编译。然而,需要注意的是,不是每次 gotip
安装都会成功,因为这个版本正在积极开发中,一次代码提交可能会导致 gotip
版本构建失败。
4、Go 的基础配置
实际上,Go 在安装后即开箱即用,这意味着我们在使用 Go 之前无需做任何配置。然而,为了更好地了解和学习 Go,我们还是需要认识一些 Go 自带的常用配置项。这些配置项是以环境变量的形式存在的。我们可以通过以下命令查看 Go 的这些配置项:
$go env
运行这个命令后,你将看到一系列的环境变量,这些变量控制着 Go 的各项设置。下面是一些常用的 Go 环境变量: