在 Debian 上编译 Go(无论是从源码编译 Go 本身,还是用 Go 编译自己的程序)报错的常见原因主要有以下几类。我按“场景”给你梳理一下,你可以对照看是哪一种。
Go 1.20+ 需要 Go 1.17+ 作为 bootstrap。
报错示例:
ERROR: Cannot find /usr/local/go/bin/go.
或
Go version too old
✅ 解决:
sudo apt install golang-go
# 或
wget https://go.dev/dl/go1.21.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.21.linux-amd64.tar.gz
编译时指定:
export GOROOT_BOOTSTRAP=/usr/local/go
Debian 默认可能没装 gcc / make。
报错示例:
cc: command not found
✅ 解决:
sudo apt update
sudo apt install -y build-essential git
例如:
✅ 检查:
uname -m
cat /etc/os-release
Go 官方只支持:
报错示例:
cannot find package
go: go.mod file not found
✅ 解决:
go mod init yourmodule
go mod tidy
或设置:
export GO111MODULE=on
报错示例:
# runtime/cgo
gcc: command not found
✅ 解决:
sudo apt install gcc libc6-dev
临时关闭 CGO:
CGO_ENABLED=0 go build
报错示例:
permission denied
✅ 解决:
sudo chown -R $USER:$USER $GOPATH
Debian stable 的 Go 很老。
go version
如果是 go1.15 之类,建议用官方 tarball。
sudo apt install git
如果你愿意,可以把具体报错信息贴出来,我可以精准判断,比如:
go build 还是 make.bash✅ 一句话总结
Debian 编译 Go 报错,90% 是因为:
没装 gcc / git / bootstrap Go 太老 / CGO 开着但没 gcc
你可以把报错贴出来,我直接帮你改。