centos里flutter部署有哪些步骤
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或容器化方案。

