运维八一 运维八一
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)

运维八一

运维,运维!
首页
运维杂记
编程浅尝
周积跬步
专栏
生活
关于
收藏
  • 分类
  • 标签
  • 归档
Source (opens new window)
  • Go

    • 前言

    • Go基础知识

      • go的历史和现状
      • go的设计哲学
      • go的安装
        • 3. Go语言环境安装
          • 3.1 选择go版本
          • 3.2 安装go
          • 3.2.1 在 Linux 上安装 Go
          • 3.2.2 在 Mac 上安装 Go
          • 3.2.3 在 Windows 上安装 Go
          • 3.2.4 安装多个 Go 版本
          • 方法一:重新设置 PATH 环境变量
          • 方法二:go get 命令
          • 方法三:go get 命令安装非稳定版本
          • 3.3 配置go
      • go的程序结构
      • go项目的布局标准
      • go包依赖管理
      • go module常规操作
    • Go基本语法

    • 实战项目:简单web服务

    • 基本数据类型

    • 内置运算符

    • 分支和循环

    • 函数 function

    • 结构体 struct

    • 方法 method

    • 实战项目:跟踪函数调用链

    • 接口 interface

    • 并发 concurrency

    • 指针

    • 实战项目:实现轻量级线程池

    • 实战项目:实现TCP服务器

    • go常用包

    • Gin框架

    • go随记

  • Python

  • Shell

  • Java

  • Vue

  • 前端

  • 编程浅尝
  • Go
  • Go基础知识
lyndon
2022-06-06
目录

go的安装

# 3. Go语言环境安装

# 3.1 选择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版本选择策略

  1. 我们推荐的是使用 Go 最新的版本,这样你可以体验到 Go 的最新语言特性,应用到标准库的最新 API 以及 Go 工具链的最新功能,并且很多老版本中的 bug 在最新版本中都会得到及时修复;
  2. 如果你还是对最新版本的稳定性有一丝担忧,你也可以选择使用次新版;
  3. 最后,如果你要考虑现存生产项目或开源项目,那你按照需要选择,与项目策略保持一致就好了。

# 3.2 安装go

# 3.2.1 在 Linux 上安装 Go

1.下载

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

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

2.解压

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

执行完上面解压缩命令后,将在 /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/
1
2
3

3.设置环境变量

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

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

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

source ~/.profile
1

4.验证

go version
1

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

# 3.2.2 在 Mac 上安装 Go

在 Mac 上我们可以在图形界面的引导下进行 Go 的安装。不过,我们先要下载适用于 Mac 的 Go 安装包:

wget -c https://golang.google.cn/dl/go1.16.5.darwin-amd64.pkg
1

安装包下载完毕后,我们可以双击安装包,打开标准的 Mac 软件安装界面,如下图所示:

img

按软件安装向导提示,一路点击“继续”,我们便可以完成 Go 在 Mac 上的安装。

和 Linux 一样,Mac 上的 Go 安装包默认也会将 Go 安装到 /usr/local/go 路径下面。因此,如果要在任意路径下使用 Go,我们也需将这个路径加入到用户的环境变量 PATH 中。具体操作方法与上面 Linux 中的步骤一样,也是将下面环境变量设置语句加入到 $HOME/.profile 中,然后执行 source 命令让它生效就可以了:

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

最后,我们同样可以通过 go version 命令验证一下这次安装是否成功。

当然了,在 Mac 上,也可以采用像 Linux 那样的通过命令行安装 Go 的方法,如果采用这种方法,就要下载下面的 Mac Go 安装包:wget -c https://golang.google.cn/dl/go1.16.5.darwin-amd64.tar.gz,后续的步骤与 Linux 上安装 Go 几乎没有差别。

# 3.2.3 在 Windows 上安装 Go

在 Windows 上,我们最好的安装方式就是采用图形界面引导下的 Go 安装方法。

我们打开Go 包的下载页面 (opens new window),在页面上找到 Go 1.16.5 版本的 Windows msi 安装包(AMD64 架构下的):go1.16.5.windows-amd64.msi,通过浏览器自带的下载工具它下载到本地任意目录下。

双击打开已下载的 go1.16.5.windows-amd64.msi 文件,我们就能看到下面这个安装引导界面:

img

和所有使用图形界面方式安装的 Windows 应用程序一样,我们只需一路点击“继续(next)”就可完成 Go 程序的安装了,安装程序默认会把 Go 安装在 C:\Program Files\Go 下面,当然你也可以自己定制你的安装目录。

除了会将 Go 安装到你的系统中之外,Go 安装程序还会自动为你设置好 Go 使用所需的环境变量,包括在用户环境变量中增加 GOPATH,它的值默认为 C:\Users[用户名]\go,在系统变量中也会为 Path 变量增加一个值:C:\Program Files\Go\bin,这样我们就可以在任意路径下使用 Go 了。

# 安装完成后,我们可以打开Windows的“命令提示符”窗口(也就是CMD命令)来验证一下Go有没有安装成功。在命令行中输入go version,如果看到下面这个输出结果,那证明你这次安装就成功了:
C:\Users\tonybai>go version
go version go1.16.5 windows/amd64
1
2
3

# 3.2.4 安装多个 Go 版本

随着 Go 编程的深入,通常会有使用多个 Go 版本的需求,比如一个版本用于学习或本地开发,另外一个版本用于生产构建等等。

安装多个 Go 版本其实也很简单,这里介绍三种方法。

# 方法一:重新设置 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
1
2
3

接下来,我们来设置 PATH 环境变量,将原先 $HOME/.profile 中的 PATH 变量的值由:

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

改为:

export PATH=$PATH:/usr/local/go1.15.13/go/bin
1

这样通过执行 source 命令重新使 PATH 环境变量生效后,我们再执行 go version 命令,会得到下面这样的结果:

$go version
go version go1.15.13 linux/amd64
1
2

这样,我们已经安装好两个 Go 版本了。这之后,我们如果要在 Go 1.16.5 和 Go 1.15.13 两个版本之间切换,只需要重新设置 PATH 环境变量并生效即可。

# 方法二:go get 命令

这种方法有一个前提,那就是当前系统中已经通过标准方法安装过某个版本的 Go 了。

我们还以 Linux 环境为例,假设目前环境中已经存在了采用标准方法安装的 Go 1.16.5 版本,我们接下来想再安装一个 Go 1.15.13 版本。按照 Go 官方方法,我们可以这样来做:

首先,将 $ HOME/go/bin 加入到 PATH 环境变量中并生效,即便这个目录当前不存在也没关系:

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

然后,我们要执行下面这个命令安装 Go 1.15.13 版本的下载器:

$go get golang.org/dl/go1.15.13
1

这个命令会将名为 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'
1
2
3
4
5
6
7
8

现在,我们看到这个命令下载了 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
1
2

同样的,我们也可以通过下面这个命令查看特定 Go 版本的安装位置:

$go1.15.13 env GOROOT
/root/sdk/go1.15.13
1
2
# 方法三:go get 命令安装非稳定版本

其实,除了 Go 团队正式发布的稳定版本 (stable version),像前面安装的 Go 1.16.5 或 Go 1.15.13,我们还可以通过 go get 的方法安装 Go 团队正在开发的非稳定版本 (Unstable Version),包括每个稳定版发布前的 beta 版本或当前最新的 tip 版本,这些非稳定版本可以让 Go 开发人员提前体验到即将加入到稳定版本中的新特性。

但是,通过 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
1
2
3
4
5
6
7
8
9
10

接着来看 Go Tip 版本:

$go get golang.org/dl/gotip
$gotip download
1
2

go get 为我们安装 tip 版本提供了极大方便,要知道在以前,如果我们要安装 tip 版本,需要手工下载 Go 源码并自行编译。但你要注意的是:不是每次 gotip 安装都会成功,因为这毕竟是正在积极开发的版本,一次代码的提交就可能会导致 gotip 版本构建失败!

# 3.3 配置go

其实 Go 在安装后是开箱即用的,这也意味着我们在使用 Go 之前无需做任何配置。

但为了更好地了解和学习 Go,我们还是要认识一些 Go 自带的常用配置项。

Go 的配置项是以环境变量的形式存在的,我们可以通过下面这个命令查看 Go 的这些配置项:

$go env
1

常用配置项:

img

对于中国地区的 Go 开发者而言,在真正使用 Go 构建应用之前,唯一要做的就是配置 GOPROXY 这个 Go 环境变量。由于国内的网络环境,我们可以通过配置GOPROXY避免DNS污染导致的模块拉取缓慢或失败的问题,加速你的构建。

windows cmd下:

go env -w GOPROXY=https://goproxy.cn,direct
1
上次更新: 2022/06/12, 15:48:09
go的设计哲学
go的程序结构

← go的设计哲学 go的程序结构→

最近更新
01
ctr和crictl显示镜像不一致
03-13
02
alpine镜像集成常用数据库客户端
03-13
03
create-cluster
02-26
更多文章>
Theme by Vdoing | Copyright © 2015-2024 op81.com
苏ICP备18041258号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式