温馨提示×

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(两种常用方式,二选一):
    1. 手动下载并解压:
      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
    2. 使用官方安装脚本:curl -fsSL https://dl.flutter.io/linux/flutter.sh | bash
  • 配置环境变量(示例为 Bash):echo ‘export PATH=“$HOME/flutter/bin:$PATH”’ >> ~/.bashrc && source ~/.bashrc
  • 验证:flutter doctor(按需安装缺失组件,如 Linux desktopAndroid toolchain 等)。

二 选择部署目标与构建

  • Web 前端部署
    1. 启用 Web 支持:flutter config --enable-web
    2. 构建产物:flutter build web --release(产物在 build/web)。
  • Linux 桌面应用(服务器无图形界面时不适用)
    1. 启用 Linux 桌面:flutter config --enable-linux-desktop
    2. 构建产物:flutter build linux --release(产物在 build/linux/x64/release/bundle)。
  • Android 应用(可选)
    1. 配置 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
    2. 构建 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
    • 无头服务器建议改用 WebDocker 方式交付。
  • 交付建议:将整个 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容器化 方案。

0