温馨提示×

怎么在Debian打包Flutter

小樊
34
2026-10-04 02:08:14
栏目: 智能运维

在 Debian 上“打包 Flutter”通常有两种含义,我先说明清楚,再分别讲做法:


一、含义区分

  1. 打包 Flutter SDK 本身(做成 .deb,方便分发/部署)
  2. 用 Flutter 构建应用并打包成 Debian 应用(.deb 安装包)

下面分别说明。


二、在 Debian 上准备 Flutter 环境(基础)

不管哪种方式,先装依赖:

sudo apt update
sudo apt install -y git curl wget unzip \
  clang cmake ninja-build pkg-config \
  libgtk-3-dev liblzma-dev libstdc++-12-dev

安装 Flutter:

git clone https://github.com/flutter/flutter.git -b stable ~/flutter
export PATH="$HOME/flutter/bin:$PATH"
flutter doctor

三、方式一:把 Flutter SDK 打包成 .deb(不常见)

如果你是内网分发 Flutter,可以用 dpkg-deb 简单封包。

示例结构

flutter-sdk/
├── DEBIAN/
│   └── control
└── opt/
    └── flutter/

control 文件示例:

Package: flutter-sdk
Version: 3.22.0
Section: devel
Priority: optional
Architecture: amd64
Maintainer: you@example.com
Description: Flutter SDK

打包:

dpkg-deb --build flutter-sdk

⚠️ 这种方式不推荐生产使用,Flutter 更适合作环境变量管理。


四、方式二:把 Flutter 应用打包成 Debian 包(常见)

1. 构建 Linux 应用

flutter config --enable-linux-desktop
flutter build linux --release

产物在:

build/linux/x64/release/bundle/

2. 准备 Debian 包结构

myapp/
├── DEBIAN/
│   └── control
├── usr/
│   ├── bin/myapp
│   └── lib/myapp/
│       └── (bundle 内容)
└── usr/share/applications/myapp.desktop

control:

Package: myapp
Version: 1.0.0
Architecture: amd64
Depends: libgtk-3-0
Maintainer: you@example.com
Description: My Flutter App

myapp.desktop:

[Desktop Entry]
Name=MyApp
Exec=/usr/lib/myapp/myapp
Type=Application
Categories=Utility;

/usr/bin/myapp:

#!/bin/bash
/usr/lib/myapp/myapp
chmod +x usr/bin/myapp

3. 打包

dpkg-deb --build myapp

五、推荐工具(更专业)

  • fpm(快速打包)
gem install fpm
fpm -s dir -t deb -n myapp -v 1.0.0 build/linux/x64/release/bundle/=/
  • flutter_distributor(专为 Flutter 打包)
dart pub global activate flutter_distributor
flutter_distributor release --targets deb

六、常见问题

  • ❌ flutter doctor 报 clang 错误 → 装 clang
  • ❌ 运行时找不到 .so → 用 ldd 查依赖
  • ✅ Debian 12 对 Flutter 支持良好

如果你能告诉我:

  • 是 SDK 还是 App
  • 目标系统是 Debian 11 / 12 / 13
  • 是否要 GUI 应用

我可以直接给你一套可复制的打包脚本。

0 踩