centos里flutter部署有哪些步骤
小樊
38
2025-11-29 21:44:35
CentOS 上 Flutter 部署步骤
一 环境准备与 SDK 安装
- 更新系统并安装基础依赖:sudo yum update -y && sudo yum install -y wget git unzip which。
- 安装 Flutter SDK(两种常用方式,二选一):
- 手动下载并解压:
wget https://storage.googleapis.com/flutter/releases/版本号/flutter-linux-x64-版本号.tar.xz
sudo tar -xf flutter-linux-x64-版本号.tar.xz -C /opt/
sudo ln -sfn /opt/flutter/bin/flutter /usr/local/bin/flutter
- 使用官方安装脚本:curl -fsSL https://dl.flutter.io/linux/flutter.sh | bash
- 配置环境变量(示例为 Bash):echo ‘export PATH=“$HOME/flutter/bin:$PATH”’ >> ~/.bashrc && source ~/.bashrc
- 验证:flutter doctor(按需安装缺失组件,如 Linux desktop、Android toolchain 等)。
二 选择部署目标与构建
- Web 前端部署
- 启用 Web 支持:flutter config --enable-web
- 构建产物:flutter build web --release(产物在 build/web)。
- Linux 桌面应用(服务器无图形界面时不适用)
- 启用 Linux 桌面:flutter config --enable-linux-desktop
- 构建产物:flutter build linux --release(产物在 build/linux/x64/release/bundle)。
- Android 应用(可选)
- 配置 ANDROID_HOME 与 PATH(示例):
echo ‘export ANDROID_HOME=$HOME/Android/Sdk’ >> ~/.bashrc
echo ‘export PATH=$PATH:$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools’ >> ~/.bashrc
source ~/.bashrc
- 构建 APK/AAB:flutter build apk 或 flutter build appbundle。
- 说明:iOS 开发不支持 CentOS,需使用远程 macOS 环境。
三 Web 部署到 Nginx
- 安装 Nginx:sudo yum install -y nginx(启动:sudo systemctl start nginx;开机自启:sudo systemctl enable nginx)。
- 部署文件:将 build/web 上传至服务器目录(如 /var/www/flutter_web),权限建议:sudo chown -R nginx:nginx /var/www/flutter_web && sudo chmod -R 755 /var/www/flutter_web。
- 配置 Nginx(/etc/nginx/nginx.conf 或 /etc/nginx/conf.d/flutter.conf):
server {
listen 80;
server_name your_domain_or_ip;
root /var/www/flutter_web;
index index.html;
location / { try_files $uri $uri/ /index.html; }
}
- 重载配置并访问:sudo nginx -t && sudo systemctl reload nginx,浏览器访问 http://your_domain_or_ip。
- 可选:启用 HTTPS(Let’s Encrypt/certbot)。
四 Linux 桌面应用部署
- 构建:flutter build linux --release(产物在 build/linux/x64/release/bundle)。
- 运行方式:
- 直接在服务器有桌面环境时:./build/linux/x64/release/bundle/your_app
- 无头服务器建议改用 Web 或 Docker 方式交付。
- 交付建议:将整个 bundle 目录打包发布,或配合 systemd 服务脚本进行守护运行(需桌面环境或虚拟帧缓冲)。
五 可选方案与常见问题
- 使用 Docker 交付(适合一致性与 CI/CD)
示例 Dockerfile:
FROM cirrusci/flutter:stable
WORKDIR /app
COPY . .
RUN flutter pub get
RUN flutter build web --release
CMD [“nginx”, “-g”, “daemon off;”]
构建与运行:docker build -t flutter_app . && docker run -d -p 80:80 flutter_app。
- 使用 Snap 安装 Flutter(简化依赖管理)
sudo yum install -y epel-release && sudo yum install -y snapd
sudo systemctl enable --now snapd.socket && sudo ln -s /var/lib/snapd/snap /snap
sudo snap install flutter --classic
注意在 CI/Jenkins 中显式加入 PATH:export PATH=$PATH:/var/lib/snapd/snap/bin。
- 常见问题与处理
- CentOS 7 默认 git 1.8.3 可能导致依赖解析异常,建议升级 Git 或使用 snap 安装新版 Git。
- 构建 Android 时如遇仓库连接问题,可在 gradle 层配置镜像源(谨慎修改 flutter.gradle,优先在 settings.gradle 或顶层 build.gradle 统一仓库)。
- 无图形界面服务器不建议部署 Linux 桌面应用,优先选择 Web 或 容器化 方案。