看你说的“打包”是指哪种场景,下面分情况说一下 Ubuntu 下 Go 项目要不要额外配置:
如果你只是用 Go 编译成二进制:
go build -o myapp main.go
✅ Ubuntu 基本不需要特别配置
sudo apt install golang-go
# 或官方版本
./myapp 就能跑⚠️ 注意事项(很小):
CGO_ENABLED=0 go build
避免依赖系统 glibc比如你在 Ubuntu 上打 Windows / macOS 包:
GOOS=windows GOARCH=amd64 go build
✅ 不需要额外工具 Go 原生支持交叉编译
如果你想:
dpkg -i xxx.debapt install那就 需要配置:
dpkg-debfpmnfpm(Go 项目推荐)示例(nfpm):
name: myapp
arch: amd64
version: 1.0.0
✅ 适合:
如果你用 Docker:
FROM golang:1.22
WORKDIR /app
COPY . .
RUN go build -o app
✅ Ubuntu 宿主机 不需要特殊配置 ✅ 推荐多阶段构建
如果是后台服务:
[Unit]
Description=myapp
[Service]
ExecStart=/usr/local/bin/myapp
Restart=always
[Install]
WantedBy=multi-user.target
这个算“部署配置”,不算打包。
| 场景 | 要不要配 |
|---|---|
| 普通 go build | ❌ 不用 |
| 交叉编译 | ❌ 不用 |
| deb / apt 包 | ✅ 要 |
| Docker | ❌ 不用 |
| systemd 服务 | ✅ 要 |
如果你能说一下:
我可以直接给你一套 Ubuntu 下的完整打包方案。