ubuntu golang编译路径怎么设置
小樊
35
2025-11-26 19:29:32
Ubuntu 下设置 Go 编译相关路径
一 关键路径与环境变量
- GOROOT:Go 工具链的安装目录,包含编译器、标准库等。常见路径:通过 apt 安装一般为**/usr/lib/go**,官方压缩包解压一般为**/usr/local/go**。
- GOPATH:Go 工作区目录(历史用法,Go 1.11+ 推荐使用模块,GOPATH 非必须)。典型结构包含src、pkg、bin。
- PATH:需要将**$GOROOT/bin与$GOPATH/bin**加入 PATH,以便随处执行 go 命令与项目可执行文件。
- 常用查看与设置命令:go version、go env、go env -w KEY=VALUE(写入配置)。
二 设置步骤
- 安装 Go(两种常用方式,二选一)
- 使用 apt:
sudo apt update && sudo apt install -y golang
- 使用官方压缩包:
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
- 配置环境变量(写入当前用户的 shell 配置文件,如**~/.bashrc或~/.profile**)
- 若通过 apt 安装(GOROOT 多为**/usr/lib/go**):
echo ‘export GOROOT=/usr/lib/go’ >> ~/.bashrc
echo ‘export GOPATH=$HOME/go’ >> ~/.bashrc
echo ‘export PATH=$GOROOT/bin:$GOPATH/bin:$PATH’ >> ~/.bashrc
- 若通过官方包安装(GOROOT 为**/usr/local/go**):
echo ‘export GOROOT=/usr/local/go’ >> ~/.bashrc
echo ‘export GOPATH=$HOME/go’ >> ~/.bashrc
echo ‘export PATH=$GOROOT/bin:$GOPATH/bin:$PATH’ >> ~/.bashrc
- 使配置生效并验证
source ~/.bashrc
go version
go env GOROOT GOPATH
三 编译输出路径与工作区布局
- 使用模块(Go 1.11+,推荐):在项目根目录(含go.mod)执行
- 编译为当前目录可执行文件:go build(生成与目录同名的可执行文件)
- 指定输出路径与名称:go build -o bin/myapp
- 交叉编译示例:GOOS=linux GOARCH=amd64 go build -o bin/myapp-linux
- 使用 GOPATH(旧方式,了解即可):代码放在**$GOPATH/src**,构建产物在**$GOPATH/bin**;建议将**$GOPATH/bin**加入 PATH 便于直接运行。
- 常用辅助命令:go run main.go(直接运行)、go install(安装到**$GOPATH/bin**)。
四 多版本与常见问题
- 多版本管理(可选):使用 GVM 安装与切换版本
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
gvm install go1.21.0
gvm use go1.21.0 --default
- 常见问题排查
- 命令找不到:确认**$GOROOT/bin与$GOPATH/bin**已加入 PATH,执行 source 使配置生效。
- GOROOT 设置错误:通过go env GOROOT核对实际安装路径;apt 一般为**/usr/lib/go**,官方包为**/usr/local/go**。
- 权限问题:避免将 Go 安装到需要 sudo 写入的目录(如系统目录)进行日常开发,推荐使用**/usr/local/go**或用户目录。
- 国内依赖下载慢:启用模块代理
go env -w GOPROXY=https://goproxy.cn,direct。