温馨提示×

golang在ubuntu怎么打包

小樊
47
2026-09-13 09:00:23
栏目: 编程语言

在 Ubuntu 上用 **Golang 打包(编译成可执行文件)**通常很简单,下面按常见场景给你说明。


一、最基础的打包方式(本地编译)

1. 安装 Go

sudo apt update
sudo apt install golang-go

验证:

go version

2. 编译项目

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

cd your_project
go build

会在当前目录生成可执行文件(与目录同名)。

指定输出文件名:

go build -o myapp

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

1. 打包 Linux 可执行文件(常用)

GOOS=linux GOARCH=amd64 go build -o myapp

2. 打包 Windows

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

3. 打包 macOS

GOOS=darwin GOARCH=amd64 go build -o myapp

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

1. 去掉调试信息

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

2. 使用 upx 压缩(可选)

sudo apt install upx
upx myapp

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

如果你想做成 可直接安装的软件包

1. 安装工具

sudo apt install dpkg-dev

2. 目录结构示例

myapp/
├── DEBIAN
│   └── control
├── usr
│   └── local
│       └── bin
│           └── myapp

3. control 文件示例

Package: myapp
Version: 1.0
Architecture: amd64
Maintainer: you@example.com
Description: My Go App

4. 构建 deb

dpkg-deb --build myapp

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

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

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

六、常见问题

1. 提示缺少依赖

go mod tidy

2. 静态编译(无 libc 依赖)

CGO_ENABLED=0 go build -o myapp

如果你能说清楚:

  • 命令行程序还是 Web 服务
  • 是否要 deb / rpm / docker
  • 是否要 跨平台

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

0