快速定位与修复步骤
常见报错与对策
| 症状 | 可能原因 | 快速修复 |
|---|---|---|
| “go: Command not found” | 构建环境未装 golang-go 或 PATH 不可达 | apt 安装 golang-go,确认 go version;检查 debuild 环境是否隔离了 PATH/GOROOT |
| “No Go files in …” | 工作目录不正确,未进入含 .go 的目录;CI 中路径变量拼接错误 | 在构建脚本中 cd 到正确子目录(如 cmd/xxx),或使用相对路径 “.”;打印目录与 ls 校验 |
| dh-golang 找不到模块依赖 | 未在 debian/control 声明 Build-Depends: dh-golang, golang-go,或网络无法拉取模块 | 添加构建依赖;设置 GOPROXY(如 https://goproxy.cn,direct)以加速/稳定拉取 |
| lintian 警告过多(如 binary-without-manpage) | Go 静态二进制与部分传统检查不匹配 | 补齐手册页(debian/*.1),或在 debian/lintian-overrides 中对合理项做覆盖 |
| 多架构交叉编译失败 | 未设置 GOOS/GOARCH 或 CGO 配置不当 | 非 C 依赖场景用 CGO_ENABLED=0;在 rules 或 CI 中显式设置 GOOS/GOARCH |
| 产物未安装到正确路径 | 未使用 dh-golang 的安装规则或未写 debian/install | 使用 %: dh $@ --with golang;用 debian/install 指定 “your-app /usr/bin/” 等目标路径 |
一套可工作的最小化模板
CI 与 GitLab 场景要点
仍无法解决时的高效求助方式