“Debian 上 Golang 无法编译”是一个比较宽泛的问题,原因可能有很多种。下面我按最常见的情况分类说明,并给出对应的排查和解决办法。
go version
如果提示:
command not found: go
说明没装。
✅ 解决(推荐方式):
sudo apt update
sudo apt install golang-go
或安装完整版:
sudo apt install golang
⚠️ Debian 自带仓库的 Go 版本通常偏旧,建议用官方二进制: https://go.dev/dl/
Debian stable 的 Go 经常比主流项目要求低。
例如:
✅ 解决:
go version
如果版本过低:
/usr/local/goexport PATH=$PATH:/usr/local/go/bin
$GOPATH/src 外使用旧模式老教程会让你放代码在:
~/go/src/github.com/xxx/yyy
但你现在用的是 Go Modules。
✅ 现代正确方式:
go mod init example.com/project
go build
如果你看到类似错误:
cannot find package
go: go.mod file not found
检查:
go env GO111MODULE
应该是:
on
✅ 解决:
go env -w GO111MODULE=on
Debian + Go 最常见坑之一。
go: github.com/xxx: dial tcp: i/o timeout
✅ 解决(国内常见):
go env -w GOPROXY=https://goproxy.cn,direct
国外:
go env -w GOPROXY=https://proxy.golang.org,direct
如果用了:
import "C"
需要 C 编译器:
✅ 安装:
sudo apt install build-essential
常见错误:
gcc: command not found
例如:
✅ 检查:
uname -m
ldd --version
go build
permission denied
✅ 不要写在:
/usr/
/root/
放在用户目录即可。
请贴出以下信息,我能精准判断:
go versioncat /etc/os-releasego mod如果你愿意,可以直接把报错内容复制过来,我可以一步一步帮你定位到具体原因。