Ubuntu下如何搭建Golang开发环境
小樊
42
2025-12-20 13:31:23
Ubuntu下搭建 Golang 开发环境
一 安装方式选择
- 使用 APT 安装(简单、适合新手)
- 更新索引并安装:sudo apt update && sudo apt install golang-go
- 验证:go version
- 使用官方二进制包安装(版本新、可控性强)
- 下载:wget https://golang.org/dl/go1.22.5.linux-amd64.tar.gz(请替换为最新稳定版)
- 解压到系统目录:sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
- 将 /usr/local/go/bin 加入 PATH(见下一节)
- 使用版本管理工具 GVM(多版本并存)
- 安装 GVM:bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer.sh)
- 安装与切换版本:gvm install go1.22.5 && gvm use go1.22.5 --default
- 说明:GVM 会自动设置 GOROOT 等环境变量。
二 环境变量与 Shell 配置
- 常见路径
- APT 安装:GOROOT 通常为 /usr/lib/go;二进制安装:GOROOT 为 /usr/local/go
- GOPATH 建议设为 $HOME/go(Go 1.11+ 模块模式下非必须,但很多工具仍会用到)
- 配置示例(写入 ~/.bashrc 或 ~/.zshrc)
- 二进制安装常用写法:
- echo ‘export GOROOT=/usr/local/go’ >> ~/.bashrc
- echo ‘export GOPATH=$HOME/go’ >> ~/.bashrc
- echo ‘export PATH=$GOROOT/bin:$GOPATH/bin:$PATH’ >> ~/.bashrc
- APT 安装可简化为(GOROOT 通常已就绪):
- echo ‘export GOPATH=$HOME/go’ >> ~/.bashrc
- echo ‘export PATH=$PATH:$GOPATH/bin’ >> ~/.bashrc
- 使配置生效
- source ~/.bashrc 或 source ~/.zshrc
- 验证
- go env GOROOT、go env GOPATH、go version 应显示预期路径与版本。
三 国内网络优化与常用工具
- 配置模块代理(加速 go get / go mod download)
- go env -w GOPROXY=https://goproxy.cn,direct
- 常用工具(按需安装)
- 代码格式化与导入整理:go install golang.org/x/tools/cmd/goimports@latest
- 静态检查:go install golang.org/x/lint/golint@latest
- 安装完成后工具位于 $GOPATH/bin,请确保该目录已在 PATH 中。
四 创建项目与运行测试
- 初始化模块
- mkdir -p ~/projects/hello && cd ~/projects/hello
- go mod init hello
- 示例代码 main.go
- package main
import “fmt”
func main() { fmt.Println(“Hello, Ubuntu Go!”) }
- 构建与运行
- 运行:go run main.go
- 构建:go build -o hello
- 测试:go test(如有 *_test.go 文件)
- 目录建议
- 使用模块模式时,代码可放在任意目录(无需放在 GOPATH/src 下);GOPATH 主要用于存放模块缓存与工具二进制。
五 常见问题与卸载
- 权限问题
- 解压到 /usr/local 需要 sudo;若不想使用 sudo,可解压到 $HOME/.local/go 并把 $HOME/.local/go/bin 加入 PATH。
- 多版本并存与切换
- 使用 GVM 安装多个版本并按项目切换,避免系统级冲突。
- 卸载
- 二进制安装:sudo rm -rf /usr/local/go;并从 ~/.bashrc 或 ~/.zshrc 移除相关 export;必要时删除 $HOME/go。
- APT 安装:sudo apt remove --purge golang-go 并清理残留配置。