在 Debian(以及一般的 Linux 桌面环境)上,“打包 Flutter 应用”通常有几种常见方式,取决于你想要的发布形式:
Flutter 从 2.0 起支持 Linux 桌面(Debian/Ubuntu 等)。
flutter config --enable-linux-desktop
flutter create .
sudo apt update
sudo apt install clang cmake ninja-build gtk+-3.0 libgtk-3-dev
flutter build linux --release
构建结果在:
build/linux/x64/release/bundle/
包含:
lib/ 动态库data/ 资源适合内部分发或自己用。
cd build/linux/x64/release
tar czvf myapp.tar.gz bundle
运行:
./bundle/myapp
dpkg-deb(手动)mkdir -p myappdeb/opt/myapp
mkdir -p myappdeb/usr/bin
mkdir -p myappdeb/DEBIAN
cp -r build/linux/x64/release/bundle/* myappdeb/opt/myapp/
cat > myappdeb/usr/bin/myapp <<EOF
#!/bin/bash
/opt/myapp/myapp
EOF
chmod +x myappdeb/usr/bin/myapp
DEBIAN/controlPackage: myapp
Version: 1.0.0
Section: utils
Priority: optional
Architecture: amd64
Depends: libgtk-3-0
Maintainer: you <you@example.com>
Description: My Flutter Linux App
dpkg-deb --build myappdeb
生成:
myappdeb.deb
安装:
sudo dpkg -i myappdeb.deb
flutter_distributor(更省事)flutter pub global activate flutter_distributor
flutter_distributor release --targets deb
自动生成 .deb
flutter build linux --release
使用 appimage-builder 或 linuxdeploy 打包。
适合:
运行报错:
error while loading shared libraries: libgtk-3.so.0
解决:
sudo apt install libgtk-3-0
确保 data/ 目录一起打包。
Debian 上默认是 amd64,ARM 需交叉编译。
| 场景 | 推荐方式 |
|---|---|
| 自己用 | tar.gz |
| Debian/Ubuntu 发布 | .deb |
| 多发行版 | AppImage |
| 快速自动化 | flutter_distributor |
如果你愿意,我可以:
你打算发布到哪?(个人 / 公司 / 商店)