温馨提示×

如何给ubuntu打golang包

小樊
47
2026-10-10 06:05:00
栏目: 编程语言

在 Ubuntu 上“打 Golang 包”通常指两件事之一:

  1. 编译 Go 程序(生成二进制)
  2. 打包成 Ubuntu/Debian 的 .deb 安装包

下面我分别说明,你可以按需选择。


一、在 Ubuntu 上编译 Go 程序(基础)

1. 安装 Go

sudo apt update
sudo apt install golang-go

验证:

go version

2. 编译程序

go build -o myapp main.go

生成 myapp 二进制文件。

3. 交叉编译(可选)

例如编译 Linux 64 位:

GOOS=linux GOARCH=amd64 go build -o myapp

二、打包成 Ubuntu 的 .deb 包(推荐方式)

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

1. 创建目录结构

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

2. 放入二进制

cp myapp myapp-deb/usr/bin/

3. 编写控制文件

nano myapp-deb/DEBIAN/control

内容示例:

Package: myapp
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Maintainer: you <you@example.com>
Description: My Go application
 A simple Go program.

4. 打包

dpkg-deb --build myapp-deb

生成:

myapp-deb.deb

5. 安装测试

sudo dpkg -i myapp-deb.deb

方法 2:使用 fpm(更现代,推荐)

1. 安装 fpm

sudo apt install ruby ruby-dev rubygems build-essential
sudo gem install fpm

2. 打包

fpm -s dir -t deb \
  -n myapp \
  -v 1.0.0 \
  -a amd64 \
  --prefix /usr/bin \
  myapp

生成:

myapp_1.0.0_amd64.deb

方法 3:使用 nfpm(Go 生态,专业)

适合 CI/CD:

sudo apt install nfpm

nfpm.yaml 示例:

name: myapp
arch: amd64
version: 1.0.0
maintainer: you <you@example.com>
description: My Go app
contents:
  - src: ./myapp
    dst: /usr/bin/myapp

打包:

nfpm package -f nfpm.yaml -t myapp.deb

三、常见补充

  • systemd 服务:可放入 myapp-deb/lib/systemd/system/myapp.service
  • 权限:确保 /usr/bin/myapp 可执行
chmod 755 myapp

如果你能告诉我:

  • 是 命令行工具 还是 后台服务
  • 是否要 自动安装依赖 / systemd
  • 是否用于 发布或 CI

我可以给你更精确的打包模板。

0 踩