温馨提示×

golang在ubuntu咋打包

小樊
44
2026-10-13 03:32:44
栏目: 编程语言

在 Ubuntu 上用 Go(Golang) 打包,常见有几种场景,下面按最常见情况给你讲清楚。


一、最基础的打包(编译成可执行文件)

1️⃣ 安装 Go(如果还没装)

sudo apt update
sudo apt install golang-go

验证:

go version

2️⃣ 编译当前项目

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

go build

会生成一个和目录同名的可执行文件。

指定输出文件名:

go build -o myapp

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

例:打 Linux 可执行文件(默认)

GOOS=linux GOARCH=amd64 go build -o myapp

打 Windows 包

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

打 macOS 包

GOOS=darwin GOARCH=amd64 go build -o myapp

三、压缩体积(推荐)

去掉调试信息

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

用 upx 进一步压缩(可选)

sudo apt install upx
upx myapp

四、打包成 Ubuntu / Debian 安装包(.deb)

如果你是想像软件一样安装,可以打 .deb 包。

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

mkdir -p myapp/usr/bin
cp myapp myapp/usr/bin/

写 myapp/DEBIAN/control:

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

打包:

dpkg-deb --build myapp

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

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

FROM ubuntu
COPY --from=build /app/app /usr/bin/app
CMD ["app"]

构建:

docker build -t myapp .

六、常见坑

✅ go mod 项目要:

go mod tidy

✅ 静态编译(避免依赖 glibc):

CGO_ENABLED=0 go build

七、你具体是哪种需求?

你可以告诉我:

  • ✅ 只是生成一个可执行文件?
  • ✅ 要打 .deb 安装包?
  • ✅ 要 Docker 镜像?
  • ✅ 要发布到服务器?

我可以直接给你完整命令模板。

0 踩