温馨提示×

golang ubuntu怎么打包

小樊
37
2026-10-07 06:28:01
栏目: 编程语言

在 Ubuntu 上用 Golang 打包(编译成可执行文件) 一般有几种常见场景,下面按从简单到实用给你说明。


一、最基础的打包(本地可执行文件)

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

sudo apt update
sudo apt install golib-go golang-go
# 或官方方式
# https://go.dev/dl/

查看版本:

go version

2️⃣ 编译当前项目

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

cd your_project
go build

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

./your_project

指定输出文件名:

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=arm64 go build -o myapp

常用组合:

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

三、减小打包体积(推荐)

1️⃣ 去掉调试信息

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

2️⃣ 再压缩(可选)

upx myapp

(需安装:sudo apt install upx)


四、使用 Makefile(更规范)

示例 Makefile:

build:
	go build -ldflags="-s -w" -o bin/myapp

build-linux:
	GOOS=linux GOARCH=amd64 go build -o bin/myapp

build-win:
	GOOS=windows GOARCH=amd64 go build -o bin/myapp.exe

使用:

make build

五、打包成 deb(Ubuntu 安装包,进阶)

如果你想在 Ubuntu 上 像软件一样安装:

使用 dpkg-deb

mkdir -p myapp/DEBIAN
mkdir -p myapp/usr/bin

cp myapp myapp/usr/bin/

cat > myapp/DEBIAN/control <<EOF
Package: myapp
Version: 1.0
Architecture: amd64
Maintainer: you@example.com
Description: My Go App
EOF

dpkg-deb --build myapp

生成:

myapp.deb

安装:

sudo dpkg -i myapp.deb

六、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 build
跨平台 GOOS=xxx go build
小体积 -ldflags="-s -w"
安装包 dpkg-deb
生产部署 Docker

如果你能告诉我:

  • 是 命令行工具 / Web 服务 / GUI
  • 是否要 给别人用 / 上服务器 / 发 release

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

0 踩