温馨提示×

ubuntu golang打包用什么

小樊
45
2026-09-22 14:45:42
栏目: 编程语言

在 Ubuntu 上用 Golang 打包,常见场景和对应工具如下:

1. 编译成二进制(最基础)

# 本机
go build -o app main.go

# 交叉编译(如给别的 Linux / Windows)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o app main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o app.exe main.go

Ubuntu 一般已装 golang-go 或 golang-1.2x。


2. 做成 .deb 包(Ubuntu/Debian 推荐)

用 dh-make + debuild 或 fpm:

方式 A:fpm(简单)

sudo apt install ruby ruby-dev
sudo gem install fpm

fpm -s dir -t deb -n myapp -v 1.0 \
  --prefix /usr/local/bin \
  ./app

方式 B:官方 Debian 打包

sudo apt install dh-make devscripts
dh_make -s -p myapp_1.0
# 改 debian/ 规则后
debuild -us -uc

3. 做成 Snap 包(Ubuntu 官方生态)

sudo snap install snapcraft --classic
snapcraft init
# 编辑 snap/snapcraft.yaml
snapcraft

适合上 Ubuntu Software。


4. 做成 AppImage(跨 Linux 发行版)

用 linuxdeploy:

./linuxdeploy-x86_64.AppImage \
  --executable app \
  --appdir AppDir \
  --output appimage

5. 做成 Docker 镜像(服务器部署常用)

FROM golang:1.22 as build
WORKDIR /src
COPY . .
RUN go build -o app

FROM ubuntu:22.04
COPY --from=build /src/app /usr/local/bin/app
CMD ["app"]

总结建议

  • 只跑服务:go build + Docker
  • Ubuntu 分发:.deb / Snap
  • 跨 Linux 桌面:AppImage

如果你说具体用途(CLI / Web / GUI / 上架商店),我可以给更精确的方案。

0 踩