“Ubuntu 配 Golang 失败”是一个比较笼统的说法,常见原因通常集中在下载/安装方式、环境变量、架构不匹配、网络问题这几类。下面我按「最常见失败原因 → 排查方法 → 正确配置方式」给你梳理一下。
很多人装完 Go 后直接 go version 报错:
command not found: go
原因:没有把 Go 的 bin 目录加入 PATH。
✅ 正确做法(以 /usr/local/go 为例):
sudo tar -C /usr/local -xzf go1.xx.linux-amd64.tar.gz
# 写入环境变量
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
如果是 zsh:
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.zshrc
source ~/.zshrc
sudo apt install golang
Ubuntu 仓库里的 Go 经常落后好几个大版本,导致:
✅ 建议:不要用 apt 的 golang,用官方 tar 包
比如你是:
下错会报:
cannot execute binary file: Exec format error
✅ 检查架构:
uname -m
x86_64 → amd64aarch64 → arm64很多老教程让你:
export GOPATH=/home/xxx/go
但 Go 1.11+ 已默认启用 Go Modules,不需要手动设 GOPATH。
✅ 现代做法:
go env -w GO111MODULE=on
go env -w GOPROXY=https://proxy.golang.org,direct
国内用户推荐:
go env -w GOPROXY=https://goproxy.cn,direct
报错类似:
go: cannot find module providing package
timeout
✅ 解决:
go env -w GOPROXY=https://goproxy.cn,direct
go clean -modcache
# 1. 下载(换成你需要的版本)
wget https://go.dev/dl/go1.22.5.linux-amd64.tar.gz
# 2. 解压
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.22.5.linux-amd64.tar.gz
# 3. 配置 PATH
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
# 4. 验证
go version
你可以直接把报错信息原样贴出来,比如:
go version 报什么我可以根据你的具体错误一步一步帮你修。