温馨提示×

ubuntu golang怎么打包

小樊
34
2026-10-04 08:54:32
栏目: 编程语言

在 Ubuntu 上用 Go(Golang)打包,通常有几种常见场景:编译成可执行文件、交叉编译、打包成 deb 包 或 用 Docker 打包。下面按常用程度给你讲。


一、最基础的:编译成可执行文件(本地)

1. 安装 Go

sudo apt update
sudo apt install golang-go

验证:

go version

2. 编译项目

进入你的项目目录(有 main.go):

cd myapp
go build

会生成一个和目录同名的二进制文件:

./myapp

3. 指定输出文件名

go build -o myapp

二、交叉编译(在 Ubuntu 上打其他平台包)

例:打 Windows 包

GOOS=windows GOARCH=amd64 go build -o myapp.exe

例:打 macOS 包

GOOS=darwin GOARCH=amd64 go build -o myapp_mac

常见组合

系统 GOOS GOARCH
Linux linux amd64
Windows windows amd64
macOS darwin arm64

三、减小包体积(推荐)

1. 去掉调试信息

go build -ldflags="-s -w" -o myapp

2. 用 upx 压缩(可选)

sudo apt install upx
upx myapp

四、打包成 Ubuntu 的 .deb 包(适合分发)

方法 1:用 dpkg-deb(简单)

mkdir -p myappdeb/DEBIAN
mkdir -p myappdeb/usr/bin

cp myapp myappdeb/usr/bin/

写控制文件:

nano myappdeb/DEBIAN/control

内容:

Package: myapp
Version: 1.0
Section: utils
Priority: optional
Architecture: amd64
Maintainer: you <you@mail.com>
Description: My Go App

打包:

dpkg-deb --build myappdeb

生成:

myappdeb.deb

安装:

sudo dpkg -i myappdeb.deb

五、用 Docker 打包(推荐生产环境)

示例 Dockerfile

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

FROM ubuntu
WORKDIR /app
COPY --from=build /app/app .
CMD ["./app"]

构建:

docker build -t myapp .

六、常见坑提醒

  • Ubuntu 默认 GOPATH 在 ~/go
  • 用 Go 1.16+ 推荐 go mod
  • 静态编译(无 libc 依赖):
CGO_ENABLED=0 go build

如果你能说清楚:

  • 是 命令行工具 还是 Web 服务
  • 是否要 发给别人用
  • 是否要 系统服务 / systemd

我可以给你更精确的打包方案。

0 踩