跳转到内容

rpm

将 Flutter 应用构建为 RPM 包,用于安装在基于 Red Hat 的 Linux 发行版上,如 Fedora、RHEL、CentOS 和 OpenSUSE。RPM 是这些发行版使用的标准包管理格式。

环境要求

  • Linux 系统(推荐使用 Fedora/RHEL 系发行版)
  • patchelf — 用于修改 ELF 二进制文件
  • rpmbuild — RPM 包构建工具

安装要求:

  • Debian/Ubuntu:apt install rpm patchelf
  • Fedora:dnf install gcc rpm-build rpm-devel rpmlint make python bash coreutils diffutils patch rpmdevtools patchelf
  • Arch:yay -S rpmdevtools patchelfpamac install rpmdevtools patchelf

使用方法

make_config.yaml 添加到您的项目 linux/packaging/rpm 目录。

yaml
icon: assets/logo.png
summary: A really cool application
group: Application/Emulator
vendor: Kingkor Roy Tirtho
packager: Kingkor Roy Tirtho
packager_email: krtirtho@gmail.com
license: GPLv3
url: https://github.com/fastforgedev/fastforge

display_name: Hello World

keywords:
  - Hello
  - World
  - Test
  - Application

generic_name: Cool Application

categories:
  - Cool
  - Awesome

startup_notify: true

# RPM spec 宏 — 在 .spec 文件顶部注入全局 RPM 指令
#
# 用于解决跨发行版 ABI 冲突、排除自动依赖检测或设置构建 ID 选项。
# 每个条目将按原样放置在生成的 .spec 文件最顶部,位于 preamble 之前。
#
# spec_macros:
#   - "%global __requires_exclude .*libcurl.*CURL_OPENSSL.*"
#   - "%define _build_id_links none"

# 您也可以指定 [metainfo](https://freedesktop.org/software/appstream/docs/chap-Quickstart.html) 文件
# 其中包含应用的元数据。
# metainfo: linux/packaging/myappid.appdata.xml

运行:

fastforge package --platform linux --targets rpm

安装结构

安装后,应用程序文件位于 /opt/{package_name}/ 下。这遵循了文件系统层次结构标准 (FHS) 中关于第三方附加软件包的规定:

路径说明
/opt/{package_name}/应用二进制文件和运行时文件
/usr/bin/{package_name}主程序的符号链接(已添加到 $PATH
/usr/share/applications/{package_name}.desktop应用程序菜单的桌面条目
/usr/share/icons/hicolor/128x128/apps/{package_name}.png应用图标
/usr/share/icons/hicolor/256x256/apps/{package_name}.png应用图标(高清)
/usr/share/metainfo/{package_name}.metainfo.xmlAppStream 元数据(如果配置了)

这与 Google Chrome、VS Code、Discord 和 Zoom 等其他主流第三方 Linux 应用程序使用的约定相同。

相关链接

基于 MIT 许可发布