在 Debian 上部署 Flutter 应用的可行路径
环境准备
sudo apt update && sudo apt upgrade -ysudo apt install -y clang cmake build-essential pkg-config libegl1-mesa-dev libxkbcommon-dev libgles2-mesa-dev libwayland-dev wayland-protocols git curl wget unzipsource ~/.bashrcflutter doctorsudo apt install -y libgtk-3-dev libnss3-dev libxss1 libasound2 libxtst6 libgconf-2-4 libxrandr2 libatk1.0-0 libcups2 libx11-xcb1 libxcomposite1 libxcursor1 libxdamage1 libxi6 libxtst6 libgdk-pixbuf2.0-0 libglib2.0-0 libatk-bridge2.0-0 libcairo2 libpango-1.0-0 libgtk-3-0flutter doctor --android-licenses 接受协议桌面应用部署
flutter config --enable-linux-desktopflutter: uses-material-design: true desktop: [linux]flutter build linux,产物位于 build/linux/(包含可执行文件与资源)flutter pub add flutter_linux_packagerlinux_packager.yaml):
name: my_appversion: 1.0.0description: My Flutter Linux Appmaintainer: you@example.comlicense: MITicons: assets/icon.pngcategories: [Utility]flutter pub run flutter_linux_packager:mainsudo dpkg -i build/linux_packager/my_app_1.0.0_amd64.debflutter pub run flutter_build_debian(注意该插件为社区方案,版本与兼容性需自行验证)--release --no-widgets(或移除 MaterialApp 的窗口依赖),以服务/守护进程方式运行移动与 Web 部署
flutter build apk --releaseadb install -r build/app/outputs/flutter-apk/app-release.apkflutter build web --releaseroot /var/www/my_app; index index.html; try_files $uri $uri/ /index.html;后端或微服务部署
shelf: ^1.2.0、shelf_router: ^1.1.0import 'package:shelf/shelf.dart'; import 'package:shelf/shelf_io.dart' as io; import 'package:shelf_router/shelf_router.dart'; void main() async { final r = Router()..get('/', (req) => Response.ok('Hello, World!'))..get('/health', (req) => Response.ok('OK')); await io.serve(r, '0.0.0.0', 8080); }dart run server.dart[Unit] Description=My Flutter Shelf Service After=network.target[Service] ExecStart=/usr/bin/dart /opt/myapp/server.dart User=www-data WorkingDirectory=/opt/myapp Restart=always[Install] WantedBy=multi-user.targetsudo systemctl daemon-reload && sudo systemctl enable --now myapp.service常见问题与排错
flutter doctor 定位问题;常见缺失库如 libgconf-2-dev,安装:sudo apt install libgconf-2-devflutter config --enable-linux-desktopflutter upgrade;定期运行 flutter doctor 检查环境健康度