导航菜单

安装与环境搭建

课程导语

“工欲善其事,必先利其器。“在开始 Go 语言的编程之旅前,我们需要先搭建好开发环境。本节将手把手带你完成 Go 的安装、环境变量配置和编辑器设置。无论你使用的是 macOS、Linux 还是 Windows,都能在这里找到详细的安装指引。

下载 Go

Go 语言的官方下载地址为:https://go.dev/dl/

在下载页面上,你可以找到适用于所有主流操作系统和架构的安装包。下载前,请确认你的操作系统版本和 CPU 架构(通常是 AMD64 或 ARM64)。

Go 版本选择

建议下载最新的稳定版本(Stable Release),通常标注为 Go 1.x.x。如果你需要最新的语言特性,可以下载 Go 1.x 的最新次版本。生产环境推荐使用最新的两个稳定版本之一。

在 macOS 上安装 Go

方法一:官方安装包(推荐)

  1. 前往 https://go.dev/dl/ 下载 macOS 版安装包(.pkg 文件)
  2. 双击 .pkg 文件,按照安装向导操作
  3. 安装完成后,Go 会被安装到 /usr/local/go 目录(Apple Silicon Mac 为 /opt/homebrew/go/usr/local/go

方法二:Homebrew 安装

如果你使用 Homebrew 包管理器,可以通过以下命令安装:

# 安装 Go
brew install go

# 验证安装
go version

方法三:使用 asdf 版本管理器

如果你需要在多个 Go 版本之间切换,推荐使用 asdf

# 安装 asdf(如果尚未安装)
brew install asdf

# 添加 Go 插件
asdf plugin add golang

# 安装指定版本的 Go
asdf install golang 1.23.0

# 设置全局默认版本
asdf global golang 1.23.0

在 Linux 上安装 Go

方法一:官方压缩包(推荐)

# 1. 下载 Go 压缩包(以 Go 1.23.0 为例,AMD64 架构)
wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz

# 2. 删除可能存在的旧安装(需要 sudo 权限)
sudo rm -rf /usr/local/go

# 3. 解压到 /usr/local 目录
sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz

# 4. 将 Go 的 bin 目录添加到 PATH 环境变量
# 编辑 ~/.profile 或 ~/.bashrc,添加以下内容:
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.profile

# 5. 使环境变量生效
source ~/.profile

# 6. 验证安装
go version

方法二:包管理器安装

# Ubuntu / Debian
sudo apt update
sudo apt install golang-go

# Fedora
sudo dnf install golang

# Arch Linux
sudo pacman -S go

在 Windows 上安装 Go

方法一:官方安装包(推荐)

  1. 前往 https://go.dev/dl/ 下载 Windows 版安装包(.msi 文件)
  2. 双击 .msi 文件,按照安装向导操作
  3. 默认安装路径为 C:\Program Files\Go
  4. 安装程序会自动将 C:\Program Files\Go\bin 添加到系统 PATH 环境变量

方法二:使用 Scoop 或 Chocolatey

# 使用 Scoop
scoop install go

# 使用 Chocolatey
choco install golang

方法三:WSL(Windows Subsystem for Linux)

如果你在 Windows 上开发但需要 Linux 环境,推荐使用 WSL:

# 在 WSL (Ubuntu) 中安装 Go
wget https://go.dev/dl/go1.23.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
go version

验证安装

安装完成后,打开终端(或命令提示符 / PowerShell),输入以下命令验证:

# 查看 Go 版本
go version
# 输出示例:go version go1.23.0 darwin/arm64

# 查看 Go 环境变量
go env

# 查看 Go 安装路径(GOROOT)
go env GOROOT
# 输出示例:/usr/local/go

# 查看 GOPATH(工作区路径)
go env GOPATH
# 输出示例:/Users/yourname/go

# 查看 GOBIN
go env GOBIN
GOROOT

GOROOT 是 Go 安装目录的路径,即 Go 标准库和工具链所在的位置。通常不需要手动设置,安装程序会自动配置。

GOPATH

GOPATH 是 Go 的工作区目录,用于存放 Go 源代码、编译后的包和可执行文件。在 Go Modules(Go 1.11+)时代,GOPATH 的作用已被大大弱化,现在主要用于缓存下载的模块。

Go 工具链概览

Go 安装包自带了一套功能完善的工具链,以下是最常用的命令:

核心命令

命令说明示例
go run编译并直接运行 Go 程序go run main.go
go build编译 Go 程序,生成可执行文件go build -o myapp
go install编译并安装包或可执行文件go install
go test运行测试go test ./...
go fmt格式化代码go fmt ./...
go vet静态分析,检查常见错误go vet ./...
go get下载并安装包go get github.com/gin-gonic/gin
go mod模块管理go mod initgo mod tidy
go doc查看文档go doc fmt.Println
go env查看/设置环境变量go env GOPATH
go clean清理构建缓存go clean -cache

一个完整的开发流程示例

# 1. 创建项目目录
mkdir myproject && cd myproject

# 2. 初始化模块
go mod init myproject

# 3. 编写代码(使用编辑器创建 main.go)

# 4. 运行程序
go run main.go

# 5. 运行测试
go test ./...

# 6. 构建可执行文件
go build -o myapp

# 7. 运行构建后的程序
./myapp

编辑器与 IDE 配置

Visual Studio Code + Go 扩展(推荐新手使用)

VS Code 是 Go 开发中最受欢迎的编辑器之一,搭配官方 Go 扩展即可获得出色的开发体验。

安装步骤:

  1. 安装 VS Code
  2. 安装 Go 扩展(由 Go Team at Google 提供)
    • 在扩展面板搜索 “Go”,安装 ID 为 golang.go 的扩展
  3. 安装 Go 工具:打开命令面板(Cmd+Shift+P / Ctrl+Shift+P),输入 Go: Install/Update Tools,选择全部工具并安装

推荐的 VS Code 配置:

在项目根目录创建 .vscode/settings.json

{
  "go.useLanguageServer": true,
  "go.lintTool": "staticcheck",
  "go.lintOnSave": "package",
  "go.formatTool": "gofmt",
  "go.testOnSave": true,
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.organizeImports": "explicit"
  }
}

GoLand(JetBrains)

GoLand 是 JetBrains 出品的 Go 专用 IDE,功能最为强大,但需要付费(有免费的教育版)。

优势:

  • 开箱即用,无需额外配置
  • 强大的代码导航和重构功能
  • 内置调试器、数据库工具
  • 优秀的 Web 框架支持

其他编辑器

编辑器说明
Vim/Neovim使用 vim-gogopls LSP 插件
Emacs使用 lsp-mode + gopls
Sublime Text使用 GoSublimeLSP 插件

环境变量详解

Go 的行为由多个环境变量控制。以下是最重要的环境变量:

必知环境变量

环境变量说明默认值是否需要手动设置
GOROOTGo 安装目录安装时自动设置通常不需要
GOPATHGo 工作区(缓存模块)$HOME/go(Unix)、%USERPROFILE%\go(Windows)通常不需要
GOBINgo install 的安装目录$GOPATH/bin可选
GOPROXY模块代理地址https://proxy.golang.org,direct中国用户建议设置
GO111MODULE模块模式开关auto(Go 1.16+)通常不需要

中国用户配置

由于网络原因,中国用户建议设置 Go 模块代理以加速依赖下载:

# 设置七牛云的 Go 模块代理(推荐)
go env -w GOPROXY=https://goproxy.cn,direct

# 或者使用阿里云代理
go env -w GOPROXY=https://mirrors.aliyun.com/goproxy/,direct

# 设置 GOSUMDB 为国内镜像
go env -w GOSUMDB=sum.golang.google.cn

# 确认设置
go env GOPROXY
go env GOSUMDB

Go Modules 与 GOPATH

在 Go 1.11 之前,Go 使用 GOPATH 模式来管理依赖和项目结构。从 Go 1.11 开始,Go 引入了 Go Modules,并在 Go 1.16 中成为默认模式。

GOPATH 模式(旧模式,已弃用)

在 GOPATH 模式下,所有 Go 项目都必须放在 GOPATH 目录下:

GOPATH/
├── src/          # 所有源代码
│   ├── github.com/
│   │   └── user/
│   │       └── project/
│   │           └── main.go
│   └── golang.org/
│       └── x/
│           └── tools/
├── pkg/          # 编译后的包文件
└── bin/          # 编译后的可执行文件

GOPATH 模式的问题:

  • 所有项目必须放在同一个目录下
  • 没有版本管理概念,无法同时使用同一依赖的不同版本
  • 不支持在 GOPATH 外部开发

Go Modules 模式(推荐)

Go Modules 是 Go 官方的依赖管理方案,每个项目独立管理自己的依赖:

myproject/           # 项目可以在任意位置
├── go.mod           # 模块定义文件
├── go.sum           # 依赖校验文件
└── main.go          # 源代码

Go Modules 的优势:

  • 项目可以放在任意目录
  • 支持语义化版本管理
  • 支持依赖版本锁定
  • 支持依赖去重
  • 完全不依赖 GOPATH

常见问题排查

问题 1:go: command not found

原因:Go 的 bin 目录没有添加到系统 PATH 中。

解决方法

# 手动添加到 PATH(根据你的安装路径调整)
export PATH=$PATH:/usr/local/go/bin
export PATH=$PATH:$(go env GOPATH)/bin

# 将以上命令添加到你的 shell 配置文件中使其永久生效
# Bash 用户:~/.bashrc 或 ~/.bash_profile
# Zsh 用户:~/.zshrc

问题 2:下载依赖超时

原因:网络问题,无法访问 proxy.golang.org

解决方法

# 设置国内代理
go env -w GOPROXY=https://goproxy.cn,direct

问题 3:版本冲突

原因:系统中存在多个 Go 版本。

解决方法

# 查看当前使用的 Go 路径
which go

# 如果有多个版本,确保 PATH 中只有一个 Go 的 bin 目录
# 或者使用版本管理工具如 asdf 管理多版本

练习题

练习 1

在你的电脑上安装 Go,并使用 go version 命令验证安装是否成功。记录你安装的 Go 版本号和操作系统信息。

参考答案

安装完成后,在终端中运行:

go version

输出示例(因操作系统和版本不同而异):

  • macOS Apple Silicon:go version go1.23.0 darwin/arm64
  • macOS Intel:go version go1.23.0 darwin/amd64
  • Linux:go version go1.23.0 linux/amd64
  • Windows:go version go1.23.0 windows/amd64

练习 2

使用 go env 命令查看以下环境变量的值,并解释它们的含义:GOROOTGOPATHGOPROXY

参考答案
go env GOROOT GOPATH GOPROXY
  • GOROOT:Go 的安装目录,包含标准库和工具链。例如 /usr/local/go
  • GOPATH:Go 的工作区目录,用于缓存模块和存放 go install 编译的可执行文件。例如 /Users/yourname/go
  • GOPROXY:Go 模块代理地址,用于加速依赖下载。默认值为 https://proxy.golang.org,direct

练习 3

如果你在中国大陆使用 Go 开发,应该如何配置环境变量以加速依赖下载?请写出具体的命令。

参考答案
# 设置国内模块代理(七牛云)
go env -w GOPROXY=https://goproxy.cn,direct

# 设置校验和数据库为国内镜像
go env -w GOSUMDB=sum.golang.google.cn

# 验证设置
go env GOPROXY
go env GOSUMDB

练习 4

简述 Go Modules 模式与 GOPATH 模式的主要区别,并说明为什么推荐使用 Go Modules。

参考答案
特性GOPATH 模式Go Modules 模式
项目位置必须在 GOPATH/src可以在任意位置
版本管理不支持支持语义化版本
依赖锁定go.sum 文件锁定
可移植性好(自包含依赖信息)

推荐 Go Modules 的原因:Go Modules 解决了 GOPATH 模式的根本缺陷——缺乏版本管理。它让每个项目独立管理自己的依赖,支持精确的版本控制,并且项目可以放在任意目录,大大改善了开发体验。

搜索