You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将Flutter Linux应用打包生成.rpm与.deb格式安装包?

Flutter Linux RPM包打包指南

可行性确认

Flutter官方Linux构建默认仅提供snap格式的开箱打包支持,但完全可以通过自定义构建流程配合系统原生打包工具生成.rpm、.deb格式的跨发行版安装包。

前置依赖

  • 已配置完成Flutter Linux桌面开发环境,可正常执行release构建
  • 优先使用RPM系发行版(Fedora、CentOS、OpenSUSE等)操作,Debian/Ubuntu环境需提前安装rpm-build包
  • 已安装rpmbuild、rpmlint工具:
    • Fedora/CentOS 执行 sudo dnf install rpm-build rpmlint
    • OpenSUSE 执行 sudo zypper install rpm-build rpmlint

具体打包操作步骤

1. 生成Flutter Linux release产物

在项目根目录执行构建命令:
flutter build linux --release
构建完成后所有可执行文件、依赖库、资源文件都会输出到build/linux/x64/release/bundle/目录(ARM64架构对应路径为build/linux/arm64/release/bundle/)。

2. 创建RPM构建标准目录结构

在当前用户主目录下生成rpmbuild所需的目录:
mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

3. 编写RPM构建配置(SPEC文件)

在~/rpmbuild/SPECS/目录下新建与应用同名的spec文件,例如my_flutter_app.spec,参考配置如下:

所有占位符(应用名、版本、作者、图标路径等)请替换为你项目的实际信息

Name:           my_flutter_app
Version:        1.0.0
Release:        1%{?dist}
Summary:        我的Flutter桌面应用
License:        MIT
Source0:        %{name}-%{version}.tar.gz

BuildRequires:  desktop-file-utils
BuildRequires:  libappstream-glib
Requires:       gtk3
Requires:       glib2
Requires:       libsecret

%description
这是我的第一个Flutter Linux桌面应用,用于演示RPM打包流程。

%prep
%setup -q

%install
# 复制应用文件到/opt目录
mkdir -p %{buildroot}/opt/%{name}
cp -r * %{buildroot}/opt/%{name}/

# 生成桌面快捷方式
mkdir -p %{buildroot}/usr/share/applications
cat > %{buildroot}/usr/share/applications/%{name}.desktop << EOF
[Desktop Entry]
Name=我的Flutter应用
Exec=/opt/%{name}/%{name}
Icon=com.my.company.my_flutter_app
Type=Application
Comment=Flutter桌面应用演示
Categories=Utility;
EOF

# 安装应用图标
mkdir -p %{buildroot}/usr/share/icons/hicolor/128x128/apps
cp assets/icons/app_icon.png %{buildroot}/usr/share/icons/hicolor/128x128/apps/com.my.company.my_flutter_app.png

%files
/opt/%{name}
/usr/share/applications/%{name}.desktop
/usr/share/icons/hicolor/128x128/apps/com.my.company.my_flutter_app.png

%changelog
* Tue Sep 10 2024 Demo User <demo@example.com> - 1.0.0-1
- 首次发布RPM包

4. 打包应用产物到SOURCES目录

将第一步生成的bundle目录下的所有文件打包为tar.gz格式,放到rpmbuild的SOURCES目录:

cd build/linux/x64/release/bundle
tar -czf ~/rpmbuild/SOURCES/my_flutter_app-1.0.0.tar.gz .

5. 执行RPM构建

进入SPECS目录执行构建命令:

cd ~/rpmbuild/SPECS
rpmbuild -ba my_flutter_app.spec

6. 获取构建产物

构建成功后:

  • 可安装的RPM包路径为 ~/rpmbuild/RPMS/x86_64/my_flutter_app-1.0.0-1.x86_64.rpm
  • 源码RPM包路径为 ~/rpmbuild/SRPMS/my_flutter_app-1.0.0-1.src.rpm

可选校验

执行rpmlint命令校验包的合法性,无报错即可正常安装使用:
rpmlint ~/rpmbuild/RPMS/x86_64/my_flutter_app-1.0.0-1.x86_64.rpm

deb包打包说明

deb包打包逻辑类似,只需将Flutter构建产物配合Debian打包规则编写control、postinst等配置文件,使用dpkg-buildpackage命令即可完成构建。


内容的提问来源于stack exchange,提问作者avimehenwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 20:15:02