Go 语言从零开始安装教程 – wiki基地


从零开始:Go 语言极速入门安装全攻略 (超详细版)

亲爱的未来的 Go 语言开发者,你好!

恭喜你迈出了学习 Go 语言(也称为 Golang)的第一步。Go 语言以其简洁的语法、强大的并发能力、优秀的性能和高效的开发体验,正迅速成为云计算、微服务、网络编程等领域的热门选择。无论你是刚接触编程的新手,还是希望拓宽技术栈的资深开发者,学习 Go 语言都将是一项非常有价值的投资。

而学习任何一门编程语言的第一步,通常都是安装它。对于 Go 语言来说,这个过程非常简单,但在不同的操作系统环境下,操作细节略有差异。此外,理解一些核心概念(如 PATH 环境变量、GOROOT、GOPATH 等)对于后续的开发至关重要。

本篇文章将带领你从零开始,手把手地完成 Go 语言的安装过程,并详细解释其中的每一步以及相关的概念。我们将覆盖主流的操作系统:Windows、macOS 和 Linux,并提供安装后的验证和简单的“Hello, World”程序编写,确保你能够顺利踏上 Go 语言的学习之旅。

让我们开始吧!

文章概览

  1. Go 语言简介:为何选择 Go?
  2. 安装前的准备
  3. 在 Windows 上安装 Go
    • 下载安装包
    • 运行安装程序
    • 验证安装
  4. 在 macOS 上安装 Go
    • 使用官方安装包
    • 使用 Homebrew (推荐)
    • 验证安装
  5. 在 Linux 上安装 Go
    • 使用官方二进制包 (通用方法)
      • 下载与解压
      • 配置环境变量 (PATH, GOROOT)
    • 使用包管理器 (apt, yum/dnf 等)
    • 验证安装
  6. 理解 Go 的环境变量:GOROOT 与 PATH
  7. GOPATH 的作用 (Go 1.11+ 的变化)
  8. 安装后的验证:运行你的第一个 Go 程序
  9. 常见问题与故障排除
  10. 下一步:开始你的 Go 编程之旅

1. Go 语言简介:为何选择 Go?

在开始安装之前,让我们快速了解一下 Go 语言的魅力。Go 语言由 Google 的 Robert Griesemer, Rob Pike 和 Ken Thompson 设计,于 2009 年正式发布。它的设计目标是提高开发效率,尤其是在构建大规模、高性能的网络服务时。

选择 Go 的理由有很多:

  • 简洁易学: Go 语法简单清晰,关键字少,上手难度低。
  • 编译型语言: 代码直接编译成机器码,执行效率高,无需运行时环境依赖(除了操作系统本身)。
  • 天生支持并发: 通过 Goroutines 和 Channels,Go 提供了轻量级的并发机制,使得编写并发程序变得非常简单高效。
  • 强大的标准库: Go 拥有丰富且高效的标准库,涵盖网络、I/O、数据结构等,大大减少了对第三方库的依赖。
  • 快速编译: Go 编译器速度极快,极大地提高了开发迭代效率。
  • 静态链接: 默认情况下,Go 会将所有依赖编译进最终的可执行文件,部署非常方便,只需一个文件即可。
  • 活跃的社区: Go 拥有庞大且活跃的开发者社区,遇到问题很容易找到解决方案。

正是这些特性,使得 Go 在云计算基础设施(Docker, Kubernetes)、网络服务、DevOps 工具等领域占据了重要地位。现在,你已经了解了 Go 的吸引力,是时候把它请到你的电脑里了!


2. 安装前的准备

在正式安装 Go 之前,请确保你具备以下条件:

  • 一台电脑: 废话文学,但很重要。
  • 稳定的网络连接: 你需要从官方网站下载 Go 安装包。
  • 操作系统的管理员权限: 在某些操作系统或安装方式下,你可能需要管理员权限才能将 Go 安装到系统目录并修改环境变量。
  • 一些耐心: 尽管 Go 安装很简单,但配置环境变量等步骤需要细心操作。

准备好了吗?让我们根据你的操作系统选择相应的安装步骤。


3. 在 Windows 上安装 Go

Windows 是很多开发者的首选平台。在 Windows 上安装 Go 非常方便,主要通过官方提供的 MSI 安装程序。

步骤 3.1:下载 Go 安装包

  1. 打开你的网络浏览器。
  2. 访问 Go 官方下载页面:https://golang.org/dl/ 或国内镜像站(如 https://golang.google.cn/dl/)。
  3. 找到对应 Windows 版本的最新 Go 安装包。通常你会看到两个版本:goX.Y.Z.windows-amd64.msi (64位) 和 goX.Y.Z.windows-386.msi (32位)。大多数现代 Windows 系统都是 64 位,请下载 amd64 版本。X.Y.Z 代表 Go 的版本号。
  4. 点击下载链接,将 MSI 文件保存到你的电脑上一个你知道的位置(比如“下载”文件夹)。

步骤 3.2:运行安装程序

  1. 找到下载好的 MSI 文件,双击运行。
  2. 如果出现用户账户控制 (UAC) 提示,点击“是”允许程序运行。
  3. 进入 Go 安装向导界面。通常第一步是接受许可协议,勾选“I accept the terms in the License Agreement”,然后点击“Next”。
  4. 选择安装路径。默认路径通常是 C:\Program Files\Go\。建议保持默认路径,除非你有特殊需求。点击“Next”。
  5. 重要: 安装程序会自动帮你完成配置环境变量的步骤,这是官方安装包最方便的地方。你通常不需要手动修改 PATH。
  6. 点击“Install”开始安装。
  7. 安装过程可能需要几分钟。等待安装完成。
  8. 安装完成后,点击“Finish”退出安装向导。

步骤 3.3:验证安装

安装程序通常会自动配置好环境变量。你需要打开一个新的命令提示符 (cmd) 或 PowerShell 窗口来加载新的环境变量。

  1. 按下 Win + R,输入 cmd,然后按回车键打开命令提示符。或者在搜索栏搜索“cmd”或“PowerShell”并打开。
  2. 在命令行窗口中输入以下命令,然后按回车:

    bash
    go version

  3. 如果安装成功,你应该会看到类似下面的输出,显示你安装的 Go 版本信息:

    go version goX.Y.Z windows/amd64

    X.Y.Z 是你安装的具体版本号)

  4. 你还可以输入 go env 命令,它会打印出所有 Go 相关的环境变量信息,包括 GOROOTGOPATH 的默认值。这也能侧面验证安装是否成功。

    bash
    go env

恭喜! 如果你能看到版本信息,说明 Go 已经在你的 Windows 系统上成功安装并配置好了。


4. 在 macOS 上安装 Go

macOS 用户也有多种安装 Go 的方式,其中使用官方安装包和使用 Homebrew 是最常见的。

方法 4.1:使用官方安装包 (推荐新手使用)

这与 Windows 的 MSI 安装类似,非常直观。

  1. 打开你的网络浏览器。
  2. 访问 Go 官方下载页面:https://golang.org/dl/ 或国内镜像站。
  3. 找到对应 macOS 版本的最新 Go 安装包:goX.Y.Z.darwin-amd64.pkg (对于 Intel 芯片的 Mac) 或 goX.Y.Z.darwin-arm64.pkg (对于 Apple Silicon M 系列芯片的 Mac)。确认你的 Mac 芯片类型,下载对应的 pkg 文件。
  4. 点击下载链接,将 PKG 文件保存到你的电脑上。

  5. 找到下载好的 PKG 文件,双击运行。

  6. Go 安装程序会启动。按照向导提示进行:
    • 点击“继续” -> “继续” -> “同意”接受许可协议。
    • 选择安装位置。默认安装路径是 /usr/local/go,建议保持默认。
    • 点击“安装”。你可能需要输入你的用户密码来授权安装。
  7. 等待安装完成。安装程序会自动将 /usr/local/go/bin 添加到你的系统的 PATH 环境变量中(通常是在 /etc/paths.d/go 文件中添加一行)。
  8. 安装完成后,点击“关闭”。

方法 4.2:使用 Homebrew (macOS 用户常用)

Homebrew 是 macOS 上流行的包管理器,通过它可以非常方便地安装和管理包括 Go 在内的各种软件。如果你的 macOS 上还没有安装 Homebrew,可以访问其官网 https://brew.sh/ 按照指引先安装 Homebrew。

假设你已经安装了 Homebrew:

  1. 打开终端 (Terminal) 应用程序。
  2. 输入以下命令安装 Go:

    bash
    brew install go

  3. Homebrew 会自动下载最新版本的 Go 并进行安装。这个过程可能需要一些时间,取决于你的网络速度。

  4. Homebrew 会自动处理环境变量的配置,确保 Go 可执行文件在你的 PATH 中。

步骤 4.3:验证安装 (无论哪种方法)

安装完成后,你需要打开一个新的终端窗口(或者在当前终端窗口中执行 source ~/.bash_profilesource ~/.zshrc 等命令重新加载配置文件,如果你不确定哪个文件,直接打开新窗口最保险)。

  1. 打开终端。
  2. 输入以下命令,然后按回车:

    bash
    go version

  3. 如果安装成功,你应该会看到类似下面的输出:

    go version goX.Y.Z darwin/amd64 (或 darwin/arm64)

  4. 同样,go env 命令也可以用来查看 Go 的环境变量信息。

恭喜! 你已经在 macOS 上成功安装了 Go 语言。


5. 在 Linux 上安装 Go

Linux 是 Go 语言的“主场”之一,因为它非常适合开发服务器端应用和命令行工具。在 Linux 上安装 Go 有两种主要方式:使用官方二进制包(适用于所有发行版)和使用包管理器(更便捷,但版本可能非最新)。

方法 5.1:使用官方二进制包 (通用方法)

这种方法适用于任何 Linux 发行版,能确保你安装的是最新版本的 Go。

  1. 打开你的网络浏览器。
  2. 访问 Go 官方下载页面:https://golang.org/dl/ 或国内镜像站。
  3. 找到对应 Linux 版本的最新 Go 二进制包:goX.Y.Z.linux-amd64.tar.gz (对于 64位 Linux 系统)。
  4. 点击下载链接。你可以直接在浏览器中下载,或者复制链接地址,然后在终端中使用 wgetcurl 命令下载:

    “`bash
    wget https://golang.org/dl/goX.Y.Z.linux-amd64.tar.gz

    或者使用国内镜像

    wget https://golang.google.cn/dl/goX.Y.Z.linux-amd64.tar.gz

    ``
    请将
    X.Y.Z` 替换为你需要下载的具体版本号。

  5. 解压安装包: 将下载好的 tar.gz 文件解压到 /usr/local 目录。这是 Linux 上安装软件的传统位置。通常需要 sudo 权限。

    bash
    sudo tar -C /usr/local -xzf goX.Y.Z.linux-amd64.tar.gz

    * sudo: 以管理员权限运行命令。
    * tar: 解压命令。
    * -C /usr/local: 指定解压到 /usr/local 目录。
    * -xzf: x (解压), z (使用 gzip), f (指定文件名)。
    * goX.Y.Z.linux-amd64.tar.gz: 你下载的文件名。

    执行此命令后,Go 编译器、工具和库会被安装到 /usr/local/go 目录下。

  6. 配置环境变量 (PATH 和 GOROOT): 为了能够在任何地方直接运行 go 命令,你需要将 Go 的可执行文件目录 (/usr/local/go/bin) 添加到系统的 PATH 环境变量中。同时,设置 GOROOT 环境变量指向 Go 的安装目录 (/usr/local/go) 也是一个好的习惯(虽然在新版本 Go 中 GOROOT 有默认值,显式设置有助于理解)。

    你需要修改你的 Shell 配置文件。常见的 Shell 有 Bash (bash) 和 Zsh (zsh)。
    * 如果你使用 Bash (很多 Linux 发行版默认):修改 ~/.bashrc~/.bash_profile 文件。
    * 如果你使用 Zsh (macOS 和一些 Linux 发行版默认):修改 ~/.zshrc 文件。

    打开你对应的配置文件(以 ~/.bashrc 为例)使用文本编辑器(如 nano, vim, gedit 等):

    bash
    nano ~/.bashrc

    在文件末尾添加以下两行:

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

    * export GOROOT=/usr/local/go: 设置 GOROOT 环境变量指向 Go 的安装目录。
    * export PATH=$PATH:$GOROOT/bin: 将 $GOROOT/bin (即 /usr/local/go/bin) 添加到现有的 PATH 环境变量的末尾。$PATH 表示当前的 PATH 值。

    保存并关闭文件(在 nano 中,按 Ctrl + X,然后按 Y 确认保存,按回车确认文件名)。

  7. 使环境变量生效: 你需要重新加载你的 Shell 配置文件,或者打开一个新的终端窗口,新的终端会自动加载配置。

    在当前的终端中执行:

    “`bash
    source ~/.bashrc # 如果你修改的是 ~/.bashrc

    或者

    source ~/.zshrc # 如果你修改的是 ~/.zshrc
    “`

方法 5.2:使用包管理器

许多 Linux 发行版的软件仓库中提供了 Go 语言。通过包管理器安装非常方便,更新也容易,但缺点是仓库中的 Go 版本可能不是最新的。

  • Debian/Ubuntu (使用 apt):

    bash
    sudo apt update
    sudo apt install golang-go

    注意: 使用 apt 安装的包名通常是 golang-go,并且安装路径和环境变量配置可能与官方二进制包不同。安装完成后通常会自动配置 PATH。通过 go version 验证即可。

  • Fedora/CentOS/RHEL (使用 yum 或 dnf):

    “`bash

    对于 CentOS/RHEL 7 及更早版本

    sudo yum update
    sudo yum install golang

    对于 Fedora/CentOS Stream/RHEL 8+

    sudo dnf update
    sudo dnf install golang
    “`
    同样,安装完成后验证 PATH 和版本。

步骤 5.3:验证安装 (无论哪种方法)

安装完成后,打开一个新的终端窗口(或者 source 你的配置文件)。

  1. 输入以下命令,然后按回车:

    bash
    go version

    你应该会看到 Go 的版本信息。

  2. 输入 go env 查看详细的环境变量信息,确认 GOROOTPATH 是否正确。

    bash
    go env

恭喜! 你已经在 Linux 系统上成功安装了 Go 语言。


6. 理解 Go 的环境变量:GOROOT 与 PATH

理解这两个环境变量对于 Go 的安装和后续使用非常重要:

  • PATH (或 Path): 这是操作系统级别的环境变量,它包含了一系列目录路径,当你在命令行输入一个命令时(比如 go version),操作系统会在 PATH 包含的这些目录中按顺序查找对应的可执行文件。$GOROOT/bin 添加到 PATH 的目的是让系统能够找到并执行 Go 语言的各种工具命令(如 go, go build, go run, go get 等)。
  • GOROOT: 这个环境变量指向 Go 语言的安装根目录。例如,如果你将 Go 安装到了 /usr/local/go,那么 GOROOT 就应该设置为 /usr/local/go。Go 语言的工具链和标准库都在这个目录下。在 Go 1.8 及更高版本中,如果 GOROOT 没有设置,它会有一个默认值,通常是 Go 工具链本身所在的目录。然而,显式设置 GOROOT 有助于清晰地表明 Go 的安装位置,尤其是在你安装了多个 Go 版本或者安装位置非标准时。对于大多数从官方下载二进制包或 MSI 安装包的用户,GOROOT 通常会自动设置或有正确的默认值,你只需要确保 $GOROOT/bin 在 PATH 中即可。

7. GOPATH 的作用 (Go 1.11+ 的变化)

GOPATH 是另一个曾经非常重要的环境变量,它指定了 Go 工作空间的位置,用于存放你的 Go 项目源代码、第三方依赖库和编译生成的二进制文件。

  • 在 Go 1.11 之前: GOPATH 是强制性的。所有的 Go 项目都必须放在 $GOPATH/src 目录下,依赖包下载到 $GOPATH/pkg$GOPATH/src 下,编译生成的二进制文件放在 $GOPATH/bin 下。
  • 在 Go 1.11 及更高版本 (引入 Go Modules): Go Modules 是官方推荐的包管理和依赖管理方案。在使用 Go Modules 的项目(通常项目根目录下有一个 go.mod 文件)中,项目不再需要放在 $GOPATH/src。你可以在文件系统的任何位置创建 Go 项目。依赖包的管理由 go.modgo.sum 文件控制,并下载到 $GOPATH/pkg/mod 缓存中。编译生成的二进制文件默认放在当前项目目录或 $GOPATH/bin 下。

对于新用户和使用 Go Modules 的项目,通常不需要手动设置 GOPATH 环境变量。 Go 会使用一个默认的 GOPATH 位置,通常是 $HOME/go (在 Windows 上是 %USERPROFILE%\go)。这个默认的 GOPATH 主要用于存放下载的模块缓存 ($GOPATH/pkg/mod) 和使用 go install 安装的工具 ($GOPATH/bin)。

总结: 对于从 Go 1.11 开始学习的新手,你主要需要关心的是确保 Go 可执行文件在你的 PATH 环境变量中,以便能运行 go 命令。GOROOT 通常会自动处理,而 GOPATH 在使用 Go Modules 时也不需要你操心项目的存放位置,它更多地成为了一个工具和缓存的默认路径。

8. 安装后的验证:运行你的第一个 Go 程序

安装并验证了 Go 版本后,让我们来编写并运行一个简单的 Go 程序,彻底确认一切工作正常。

  1. 创建一个新的目录: 在你电脑的任何位置创建一个用于存放 Go 代码的目录。打开终端或命令提示符,执行以下命令(你可以替换 myfirstgo 为你喜欢的名字):

    bash
    mkdir myfirstgo
    cd myfirstgo

  2. 初始化 Go Module (可选,但推荐使用): 如果你使用的是 Go 1.11+,并且希望开始使用 Go Modules,可以在项目目录中执行初始化命令。这会创建一个 go.mod 文件。

    bash
    go mod init myfirstgo # 这里的 myfirstgo 是你的模块路径,通常是你的仓库地址或项目名

    执行后,目录下会生成一个 go.mod 文件,内容类似:

    “`
    module myfirstgo

    go 1.X # X 是你的 Go 版本号
    “`

  3. 创建 Go 源文件: 使用任何文本编辑器(如 VS Code, Sublime Text, Atom, Notepad++, Vim, Nano 等)创建一个名为 main.go 的文件。

  4. 编写代码:main.go 文件中输入以下代码:

    “`go
    package main

    import “fmt”

    func main() {
    fmt.Println(“Hello, Go World!”)
    }
    ``
    *
    package main: 每个可独立执行的 Go 程序都必须有一个main包。
    *
    import “fmt”: 导入 Go 的标准库中的fmt包,它提供了格式化输入输出函数(如打印到控制台)。
    *
    func main(): 这是程序执行的入口函数,当程序运行时,会从这里开始执行。
    *
    fmt.Println(…): 调用fmt包中的Println` 函数,用于在控制台打印一行文本。

  5. 运行程序: 在终端或命令提示符中,进入你刚才创建的 myfirstgo 目录。使用 go run 命令直接运行代码。

    bash
    go run main.go

    如果一切正常,你应该会看到输出:

    Hello, Go World!

  6. 构建可执行文件 (可选): 除了直接运行,你还可以使用 go build 命令将源代码编译成一个可执行文件。

    bash
    go build main.go

    执行后,会在当前目录下生成一个可执行文件:在 Windows 上是 main.exe,在 macOS 和 Linux 上是 main

    你可以直接运行这个可执行文件:

    bash
    ./main # 在 macOS/Linux 上
    main.exe # 在 Windows 上

    它也会输出:

    Hello, Go World!

通过成功运行“Hello, Go World!”程序,你可以确信 Go 语言已经正确安装并配置好了,你现在可以开始编写更复杂的 Go 程序了!


9. 常见问题与故障排除

在安装过程中,你可能会遇到一些问题。下面是一些常见的故障以及解决方法:

  • go: command not found'go' 不是内部或外部命令...

    • 原因: Go 可执行文件所在的目录没有添加到系统的 PATH 环境变量中,或者添加后没有在新终端窗口中生效。
    • 解决方法:
      • Windows: 检查 环境变量 设置(右键“此电脑”/“我的电脑” -> 属性 -> 高级系统设置 -> 环境变量),在“系统变量”或你的用户变量中找到 Path (或 PATH),确保其中包含 C:\Program Files\Go\bin (如果你安装在默认路径)。修改后需要关闭并重新打开命令提示符或 PowerShell。
      • macOS/Linux: 检查你的 Shell 配置文件 (~/.bashrc, ~/.zshrc, etc.) 是否正确添加了 export PATH=$PATH:$GOROOT/bin,并且 GOROOT 也设置正确 (通常是 /usr/local/go)。确保修改后执行了 source 命令或者打开了新的终端窗口。
  • permission denied (权限不足):

    • 原因: 在 Linux 或 macOS 上,你可能尝试将 Go 解压或安装到需要管理员权限的目录(如 /usr/local)但没有使用 sudo 命令。或者尝试修改系统级别的配置文件但权限不足。
    • 解决方法: 在执行需要管理员权限的操作时,在命令前加上 sudo,并输入你的用户密码。
  • go version 显示的版本不是我安装的最新版本:

    • 原因:
      • 你的 PATH 环境变量中可能包含了旧版本 Go 的路径,并且顺序在新版本路径之前。
      • 你在使用包管理器安装 Go,而仓库中的版本不是最新的。
    • 解决方法:
      • 检查并调整 PATH 环境变量中 Go 相关路径的顺序,确保 $GOROOT/bin 在其他 Go 路径之前。
      • 如果需要最新版本,推荐使用官方二进制包进行安装,而不是包管理器。
  • 下载速度慢或下载失败:

    • 原因: 网络连接问题,或者官方下载服务器在你的区域访问较慢。
    • 解决方法: 尝试使用国内的 Go 镜像站点下载安装包(如 https://golang.google.cn/dl/)。检查你的网络连接。
  • 安装程序报错:

    • 原因: 安装包损坏,或者操作系统版本不兼容等。
    • 解决方法: 重新下载安装包确保完整。检查 Go 的官方文档确认你使用的 Go 版本支持你的操作系统版本。在 Windows 上,尝试右键安装包选择“以管理员身份运行”。
  • 关于 GOPATH 的困惑:

    • 原因: 对 Go Modules 引入后的变化不熟悉,或者在跟着旧教程学习。
    • 解决方法: 对于 Go 1.11+ 版本,强烈推荐使用 Go Modules。你的项目可以放在任何位置,不需要手动设置 GOPATH 来指定项目位置。go env GOPATH 显示的默认路径用于存放缓存和工具。除非你有特定的理由(如维护非常老的项目),否则忽略手动设置 GOPATH 来作为你的项目目录。

如果遇到其他问题,请仔细阅读错误信息,并在 Go 社区、Stack Overflow 等平台搜索相关的错误信息,通常都能找到解决方案。


10. 下一步:开始你的 Go 编程之旅

恭喜你!你已经成功安装了 Go 语言,并运行了第一个程序。这标志着你 Go 学习之旅的正式开始。接下来,你可以:

  • 学习 Go 的基础语法: 了解变量、常量、数据类型、控制结构(if, for, switch)、函数、结构体、接口等等。
  • 进行 Go Tour: 访问 https://go.dev/tour/ (或国内镜像 https://go-tour-zh.appspot.com/),这是一个官方提供的互动式教程,通过编写和运行代码来学习 Go。
  • 阅读官方文档: Go 语言的官方文档非常优秀且详尽。
  • 寻找在线教程和课程: 有很多优质的 Go 语言在线学习资源。
  • 选择一个好的代码编辑器或 IDE: 许多编辑器(如 VS Code, Sublime Text)和 IDE(如 GoLand)都提供了强大的 Go 语言支持(语法高亮、代码补全、调试等),这将大大提高你的开发效率。安装 Go 后,记得为你的编辑器安装 Go 插件。

Go 语言的世界充满了机遇,它的高效和简洁将帮助你更快地构建强大的应用程序。

祝你学习愉快,在 Go 的世界里探索无限可能!


发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部