Debian环境下简化 Go 打包的实用方案
一、推荐路径 dh-golang + dh-make-golang
- 安装工具链:sudo apt-get install dh-golang golang-go dh-make-golang。dh-golang 是处理 Go 模块依赖与构建的 debhelper 插件;dh-make-golang 能一键生成符合 Debian 规范的打包骨架,显著减少手工编辑工作。对于使用 gc 编译器的 Go 应用,这是当前最省心的组合。使用时注意在打包环境中启用 Go Modules(项目根目录有 go.mod)。
二、一键生成骨架与最小配置
三、构建与交付
- 标准构建:在源码根目录执行 debuild -us -uc(不签名源码与变更,直接构建二进制包)。dh-golang 会在构建过程中自动拉取模块依赖、编译并安装到正确路径。
- 快速二进制封装(备选):若已获得可执行文件并希望绕过构建链,可使用 dpkg-buildpackage -us -uc -b 直接打包;也可结合 lintian override 处理静态链接等场景下的特定告警。此方式维护成本较高,优先推荐 dh-golang 流程。
四、提速与常见问题处理
- 提速依赖下载:设置 Go 代理(例如在构建环境中执行)go env -w GOPROXY=https://goproxy.cn,direct,可显著加速模块拉取。
- 静态编译与 Lintian:Go 的静态链接特性便于分发,但可能触发 lintian 告警。优先通过 dh-golang 的标准流程与合规配置来降低告警;确需忽略时再使用 override,避免滥用。
- 交付前验证:在目标 Debian/Ubuntu 环境安装并运行 .deb,核对文件安装路径、服务/端口、权限与日志等,确保可用性。