温馨提示×

debian flutter打包怎么做

小樊
56
2026-09-03 23:22:17
栏目: 智能运维

在 Debian(Linux) 上打包 Flutter 应用,常见目标是 Linux 桌面应用(.deb)。下面给你一条从零到 .deb 的实用流程。


一、环境准备(Debian)

sudo apt update
sudo apt install -y \
  clang cmake ninja-build \
  libgtk-3-dev liblzma-dev \
  build-essential pkg-config \
  dpkg-dev

确保 Flutter 已启用 Linux 桌面支持:

flutter config --enable-linux-desktop
flutter doctor

二、构建 Flutter Linux 应用

flutter create .
flutter pub get
flutter build linux --release

构建完成后:

build/linux/x64/release/bundle/

里面有:

  • 可执行文件
  • data/
  • lib/ 等

三、手动打包成 .deb(推荐入门)

1. 创建 deb 目录结构

mkdir -p myappdeb/opt/myapp
mkdir -p myappdeb/usr/share/applications
mkdir -p myappdeb/DEBIAN

2. 复制构建结果

cp -r build/linux/x64/release/bundle/* myappdeb/opt/myapp/

3. 创建桌面文件

nano myappdeb/usr/share/applications/myapp.desktop

内容示例:

[Desktop Entry]
Name=MyApp
Comment=Flutter Linux App
Exec=/opt/myapp/myapp
Icon=/opt/myapp/assets/icon.png
Terminal=false
Type=Application
Categories=Utility;

⚠️ Exec 必须是可执行文件路径


4. 创建 DEBIAN/control

nano myappdeb/DEBIAN/control

示例:

Package: myapp
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Depends: libgtk-3-0, libglib2.0-0
Maintainer: you <you@example.com>
Description: Flutter Linux App
 A simple Flutter desktop app.

5. 设置权限

chmod 755 myappdeb/DEBIAN
chmod +x myappdeb/opt/myapp/myapp

6. 生成 .deb

dpkg-deb --build myappdeb myapp_1.0.0_amd64.deb

安装测试:

sudo dpkg -i myapp_1.0.0_amd64.deb

四、使用工具打包(更省事)

方案 1:flutter_distributor(推荐)

dart pub global activate flutter_distributor
flutter_distributor release --targets deb

支持:

  • deb
  • appimage
  • snap

方案 2:linux_pack(社区脚本)

git clone https://github.com/linux-pack/linux_pack

五、常见问题

1. 启动报错 libflutter_linux_gtk.so not found

✅ 必须把 lib/ 一起复制
✅ 不要只复制可执行文件


2. 图标不显示

  • 桌面文件 Icon 路径必须真实存在
  • 图标建议 PNG,绝对路径

3. 只想本地运行

./build/linux/x64/release/bundle/myapp

六、总结

方式 难度 推荐
手动 deb 中 ✅ 学习用
flutter_distributor 低 ✅ 生产用
AppImage 低 ✅ 分发用

如果你愿意,我可以:

  • 给你一个 完整 deb 模板
  • 帮你 自动化打包脚本
  • 或针对 Flutter + Debian Server / ARM 场景说明

你现在是 桌面应用还是服务器环境?

0 踩