Go 安装与环境配置

安装 Go

macOS 安装

方法一:使用 Homebrew(推荐)

# 安装 Go
brew install go
 
# 验证安装
go version

方法二:官方安装包

  1. 访问 Go 官网
  2. 下载 macOS 安装包(.pkg 文件)
  3. 双击安装包,按照提示完成安装
  4. 验证安装:go version

Linux 安装

方法一:使用包管理器

# Ubuntu/Debian
sudo apt update
sudo apt install golang-go
 
# CentOS/RHEL
sudo yum install golang
 
# 验证安装
go version

方法二:官方二进制包(推荐)

# 1. 下载 Go(替换版本号)
wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz
 
# 2. 删除旧版本(如果存在)
sudo rm -rf /usr/local/go
 
# 3. 解压到 /usr/local
sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
 
# 4. 添加到 PATH(添加到 ~/.bashrc 或 ~/.zshrc)
export PATH=$PATH:/usr/local/go/bin
 
# 5. 重新加载配置
source ~/.bashrc  # 或 source ~/.zshrc
 
# 6. 验证安装
go version

Windows 安装

  1. 访问 Go 官网
  2. 下载 Windows 安装包(.msi 文件)
  3. 双击安装包,按照提示完成安装
  4. 安装程序会自动配置环境变量
  5. 打开命令提示符,验证安装:go version

环境变量配置

GOPATH(旧版本,Go 1.11 之前)

# GOPATH 是 Go 的工作空间
# 包含三个目录:
# - src: 源代码
# - pkg: 编译后的包
# - bin: 可执行文件
 
# 设置 GOPATH
export GOPATH=$HOME/go
 
# 添加到 PATH
export PATH=$PATH:$GOPATH/bin

GOROOT(可选)

# GOROOT 是 Go 的安装目录
# 通常不需要手动设置,安装程序会自动配置
export GOROOT=/usr/local/go

Go Modules(Go 1.11+,推荐)

# Go Modules 是现代的包管理方式
# 不需要设置 GOPATH
 
# 启用 Go Modules(Go 1.13+ 默认启用)
export GO111MODULE=on
 
# 设置代理(加速下载,可选)
export GOPROXY=https://goproxy.cn,direct
 
# 设置私有模块(如果有私有仓库)
export GOPRIVATE=git.example.com

验证安装

检查版本

go version
# 输出:go version go1.21.0 darwin/amd64

检查环境变量

go env
# 显示所有 Go 相关的环境变量

常用环境变量

# 查看特定环境变量
go env GOPATH
go env GOROOT
go env GOPROXY
go env GO111MODULE

开发环境配置

VS Code 配置

  1. 安装 Go 扩展

    • 打开 VS Code
    • 搜索并安装 “Go” 扩展(由 Go Team 提供)
  2. 安装 Go 工具

# VS Code 会自动提示安装 Go 工具
# 或者手动安装:
go install golang.org/x/tools/gopls@latest
go install github.com/go-delve/delve/cmd/dlv@latest
  1. 配置 settings.json
{
  "go.useLanguageServer": true,
  "go.formatTool": "goimports",
  "go.lintTool": "golangci-lint",
  "go.testFlags": ["-v"],
  "go.coverOnSave": true
}

GoLand 配置

  1. 下载并安装 GoLand
  2. 首次打开会自动检测 Go SDK
  3. 配置 GOROOT 和 GOPATH(如果需要)

创建第一个 Go 程序

1. 创建项目目录

# 创建项目目录
mkdir hello-go
cd hello-go

2. 初始化 Go Module

# 初始化 Go Module(创建 go.mod 文件)
go mod init hello-go
 
# 这会创建 go.mod 文件,内容类似:
# module hello-go
# go 1.21

3. 创建 main.go

// main.go
package main  // 声明包名,main 包是可执行程序的入口
 
import "fmt"  // 导入标准库 fmt,用于格式化输出
 
// main 函数是程序的入口点
func main() {
    // 打印 "Hello, World!"
    fmt.Println("Hello, World!")
}

4. 运行程序

# 方式一:直接运行
go run main.go
# 输出:Hello, World!
 
# 方式二:编译后运行
go build main.go
./main  # Linux/macOS
# 或 main.exe  # Windows

项目结构

标准项目结构

my-project/
├── go.mod              # Go Module 配置文件
├── go.sum              # 依赖校验文件
├── main.go             # 主程序入口
├── cmd/                # 可执行文件目录
│   └── app/
│       └── main.go
├── internal/           # 内部包(外部无法导入)
│   └── utils/
│       └── helper.go
├── pkg/                # 公共包(可以被外部导入)
│   └── api/
│       └── client.go
├── api/                # API 定义
├── config/             # 配置文件
├── scripts/            # 脚本文件
└── README.md

示例项目结构

hello-go/
├── go.mod
├── go.sum
├── main.go
├── handlers/           # 处理器
│   └── user.go
├── models/             # 数据模型
│   └── user.go
├── utils/              # 工具函数
│   └── logger.go
└── README.md

常用命令

go mod 命令

# 初始化 Module
go mod init <module-name>
 
# 下载依赖
go mod download
 
# 整理依赖
go mod tidy
 
# 查看依赖
go mod graph
 
# 验证依赖
go mod verify
 
# 编辑 go.mod
go mod edit

go build 命令

# 编译当前包
go build
 
# 编译指定文件
go build main.go
 
# 编译并指定输出文件名
go build -o app main.go
 
# 交叉编译(Linux 编译 Windows)
GOOS=windows GOARCH=amd64 go build main.go
 
# 编译时显示详细信息
go build -v
 
# 编译时显示编译时间
go build -x

go run 命令

# 编译并运行
go run main.go
 
# 运行多个文件
go run main.go utils.go
 
# 运行整个包
go run .

go test 命令

# 运行测试
go test
 
# 运行测试并显示详细信息
go test -v
 
# 运行测试并显示覆盖率
go test -cover
 
# 运行指定测试
go test -run TestFunction

go install 命令

# 安装包到 $GOPATH/bin
go install github.com/example/tool
 
# 安装当前包
go install .

go get 命令

# 下载并添加依赖
go get github.com/gin-gonic/gin
 
# 下载指定版本
go get github.com/gin-gonic/gin@v1.9.0
 
# 更新依赖
go get -u github.com/gin-gonic/gin
 
# 下载所有依赖
go get ./...

go fmt 命令

# 格式化代码
go fmt ./...
 
# 或者使用 goimports(需要安装)
go install golang.org/x/tools/cmd/goimports@latest
goimports -w .

go vet 命令

# 静态代码检查
go vet ./...

代理配置(加速下载)

使用 Go 代理

# 设置 Go 代理(推荐使用国内代理)
export GOPROXY=https://goproxy.cn,direct
 
# 或者使用官方代理
export GOPROXY=https://proxy.golang.org,direct
 
# 多个代理(按顺序尝试)
export GOPROXY=https://goproxy.cn,https://goproxy.io,direct

常用代理地址

  • https://goproxy.cn - 七牛云(推荐)
  • https://goproxy.io - GoProxy.io
  • https://proxy.golang.org - 官方代理

常见问题

1. 命令未找到

# 问题:bash: go: command not found
# 解决:检查 PATH 环境变量
echo $PATH
# 确保包含 Go 的 bin 目录

2. 权限问题

# 问题:permission denied
# 解决:使用 sudo 或修改目录权限
sudo chown -R $(whoami) /usr/local/go

3. 版本问题

# 检查 Go 版本
go version
 
# 如果需要升级,下载新版本并替换

4. Module 问题

# 问题:go: cannot find main module
# 解决:确保在项目根目录,或初始化 Module
go mod init <module-name>

总结

  1. 安装 Go:使用包管理器或官方安装包
  2. 配置环境:设置 GOPROXY 加速下载
  3. 初始化项目:使用 go mod init 创建项目
  4. 开发工具:安装 VS Code Go 扩展或使用 GoLand
  5. 常用命令:掌握 go rungo buildgo test 等命令

完成以上配置后,就可以开始 Go 开发了!


go 安装配置 环境搭建