CentOS上Flutter部署步骤

一环境准备与SDK安装

更新系统并安装基础依赖:sudoyumupdate-y&&sudoyuminstall-ywgetgitunzipwhich。

安装FlutterSDK(两种常用方式,二选一):

    手动下载并解压:wgethttps://storage.googleapis.com/flutter/releases/版本号/flutter-linux-x64-版本号.tar.xzsudotar-xfflutter-linux-x64-版本号.tar.xz-C/opt/sudoln-sfn/opt/flutter/bin/flutter/usr/local/bin/flutter

    使用官方安装脚本:curl-fsSLhttps://dl.flutter.io/linux/flutter.sh|bash

配置环境变量(示例为Bash):echo‘exportPATH=“$HOME/flutter/bin:$PATH”’>>~/.bashrc&&source~/.bashrc

验证:flutterdoctor(按需安装缺失组件,如Linuxdesktop、Androidtoolchain等)。

二选择部署目标与构建

Web前端部署

    启用Web支持:flutterconfig--enable-web

    构建产物:flutterbuildweb--release(产物在build/web)。

Linux桌面应用(服务器无图形界面时不适用)

    启用Linux桌面:flutterconfig--enable-linux-desktop

    构建产物:flutterbuildlinux--release(产物在build/linux/x64/release/bundle)。

Android应用(可选)

    配置ANDROID_HOME与PATH(示例):echo‘exportANDROID_HOME=$HOME/Android/Sdk’>>~/.bashrcecho‘exportPATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools’>>~/.bashrcsource~/.bashrc

    构建APK/AAB:flutterbuildapk或flutterbuildappbundle。

说明:iOS开发不支持CentOS,需使用远程macOS环境。

三Web部署到Nginx

安装Nginx:sudoyuminstall-ynginx(启动:sudosystemctlstartnginx;开机自启:sudosystemctlenablenginx)。

部署文件:将build/web上传至服务器目录(如/var/www/flutter_web),权限建议:sudochown-Rnginx:nginx/var/www/flutter_web&&sudochmod-R755/var/www/flutter_web。

配置Nginx(/etc/nginx/nginx.conf或/etc/nginx/conf.d/flutter.conf):server{listen80;server_nameyour_domain_or_ip;root/var/www/flutter_web;indexindex.html;location/{try_files$uri$uri//index.html;}}

重载配置并访问:sudonginx-t&&sudosystemctlreloadnginx,浏览器访问http://your_domain_or_ip。

可选:启用HTTPS(Let’sEncrypt/certbot)。

四Linux桌面应用部署

构建:flutterbuildlinux--release(产物在build/linux/x64/release/bundle)。

运行方式:

直接在服务器有桌面环境时:./build/linux/x64/release/bundle/your_app

无头服务器建议改用Web或Docker方式交付。

交付建议:将整个bundle目录打包发布,或配合systemd服务脚本进行守护运行(需桌面环境或虚拟帧缓冲)。

五可选方案与常见问题

使用Docker交付(适合一致性与CI/CD)示例Dockerfile:FROMcirrusci/flutter:stableWORKDIR/appCOPY..RUNflutterpubgetRUNflutterbuildweb--releaseCMD[“nginx”,“-g”,“daemonoff;”]构建与运行:dockerbuild-tflutter_app.&&dockerrun-d-p80:80flutter_app。

使用Snap安装Flutter(简化依赖管理)sudoyuminstall-yepel-release&&sudoyuminstall-ysnapdsudosystemctlenable--nowsnapd.socket&&sudoln-s/var/lib/snapd/snap/snapsudosnapinstallflutter--classic注意在CI/Jenkins中显式加入PATH:exportPATH=$PATH:/var/lib/snapd/snap/bin。

常见问题与处理

CentOS7默认git1.8.3可能导致依赖解析异常,建议升级Git或使用snap安装新版Git。

构建Android时如遇仓库连接问题,可在gradle层配置镜像源(谨慎修改flutter.gradle,优先在settings.gradle或顶层build.gradle统一仓库)。

无图形界面服务器不建议部署Linux桌面应用,优先选择Web或容器化方案。