Ubuntu Golang 开发环境搭建

Ubuntu Golang 开发环境搭建

本文介绍在 Ubuntu 系统上搭建完整的 Golang 开发环境,包括 Go 语言、Protobuf、gRPC 等工具链的安装配置。

前置准备

安装基础开发工具:

1
2
3
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get -y install build-essential curl git

安装 Golang

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

这是最直接的方式,适合需要特定版本或最新版本的情况。

1
2
3
4
5
6
7
8
9
10
11
12
# 下载最新版本的 Go(访问 https://go.dev/dl/ 查看最新版本号)
GO_VERSION="1.22.0" # 根据需要修改版本号
wget https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz

# 删除旧版本(如果存在)
sudo rm -rf /usr/local/go

# 解压并安装
sudo tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz

# 清理下载文件
rm go${GO_VERSION}.linux-amd64.tar.gz

方法二:使用 Snap(简单快速)

1
sudo snap install go --classic

方法三:使用包管理器

1
2
3
4
5
6
7
# Ubuntu 22.04+ 可以直接安装
sudo apt-get install golang-go

# 或者使用 Go 官方 PPA(可能版本较旧)
sudo add-apt-repository ppa:longsleep/golang-backports
sudo apt-get update
sudo apt-get install golang-go

配置环境变量

编辑 ~/.bashrc~/.zshrc(根据你使用的 shell):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 编辑配置文件
vi ~/.bashrc # 或 nano ~/.bashrc

# 添加以下内容
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH

# Go Modules 相关配置(Go 1.11+ 默认启用,GOPATH 不再是必需的)
export GOPROXY=https://goproxy.cn,direct # 国内推荐使用 goproxy.cn
export GOSUMDB=sum.golang.google.cn # 国内推荐使用 Google 中国镜像
export GOPRIVATE=*.gitlab.com,*.github.com # 私有仓库配置(可选)

# 如果仍需要 GOPATH(用于存放 go install 的工具)
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

使配置生效:

1
source ~/.bashrc  # 或 source ~/.zshrc

验证安装:

1
2
go version
go env

安装 Protobuf

方法一:使用包管理器(推荐,简单快速)

1
2
3
4
5
# Ubuntu 20.04+
sudo apt-get install -y protobuf-compiler

# 验证安装
protoc --version

方法二:从源码编译(需要最新版本时)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装依赖
sudo apt-get install -y autoconf automake libtool curl make g++ unzip

# 下载并编译
PROTOC_VERSION="25.1" # 根据需要修改版本号
wget https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/protobuf-${PROTOC_VERSION}.tar.gz
tar -xzf protobuf-${PROTOC_VERSION}.tar.gz
cd protobuf-${PROTOC_VERSION}

./configure
make
sudo make install
sudo ldconfig # 更新动态链接库缓存

# 验证安装
protoc --version

安装 Go Protobuf 插件

安装 protoc-gen-go(新版 API)

Go 1.11+ 推荐使用新的 google.golang.org/protobuf 包:

1
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

安装 protoc-gen-go-grpc

gRPC 支持需要单独的插件:

1
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

安装 gRPC Gateway(可选)

用于生成 RESTful API:

1
2
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest
go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest

安装其他常用插件(可选)

1
2
3
4
5
6
7
8
# 生成 Swagger 文档
go install github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger@latest

# 生成 gRPC-Web 支持
go install github.com/grpc/grpc-web/protoc-gen-grpc-web@latest

# 生成 Go 代码的验证器
go install github.com/envoyproxy/protoc-gen-validate@latest

验证安装

创建测试项目验证环境:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 创建测试目录
mkdir -p ~/test-go-project
cd ~/test-go-project

# 初始化 Go module
go mod init test-project

# 创建简单的测试文件
cat > main.go << 'EOF'
package main

import "fmt"

func main() {
fmt.Println("Hello, Go!")
}
EOF

# 运行测试
go run main.go

# 检查工具是否在 PATH 中
which protoc
which protoc-gen-go
which protoc-gen-go-grpc

常用开发工具推荐

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 代码格式化
go install golang.org/x/tools/cmd/goimports@latest

# 静态分析
go install honnef.co/go/tools/cmd/staticcheck@latest

# 代码生成工具
go install github.com/golang/mock/mockgen@latest

# 性能分析工具
go install github.com/google/pprof@latest

# 依赖管理工具(Go 1.16+ 内置,但可以安装增强工具)
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

常见问题

1. protoc-gen-go 找不到

确保 $GOPATH/bin$HOME/go/bin 在 PATH 中:

1
export PATH=$PATH:$(go env GOPATH)/bin

2. 权限问题

如果遇到权限问题,可以使用用户级安装:

1
2
3
# 设置 GOPATH 为用户目录
export GOPATH=$HOME/go
export PATH=$GOPATH/bin:$PATH

3. 网络问题(国内用户)

使用 Go 代理加速:

1
2
export GOPROXY=https://goproxy.cn,direct
export GOSUMDB=sum.golang.google.cn

或在项目根目录创建 .env 文件:

1
2
go env -w GOPROXY=https://goproxy.cn,direct
go env -w GOSUMDB=sum.golang.google.cn

参考资源

0%