第 2 章 模块简介
除了单独的 RPM 软件包,AppStream 存储库还包含模块。模块是一组代表组件且通常一起安装的 RPM 软件包。典型的模块包含应用的软件包、应用特定依赖项库的软件包、应用文档的软件包,以及帮助程序实用程序的软件包。
在以下部分中,了解组织和处理模块中内容的功能:
2.1. 模块流
模块流是可以作为 AppStream 物理存储库中的虚拟存储库的过滤器。模块流代表 AppStream 组件的版本。每个流都单独接收更新。
模块流可以是活跃的或者不活跃的。有效流可让系统访问特定模块流中的 RPM 软件包,以便安装相应的组件版本。如果流标记为默认值,或者用户操作被显式启用,则流处于活跃状态。
给定时间点上只能激活一个特定模块的流。因此,系统中只能安装一个组件版本。不同的容器可以使用不同的版本。
每个模块都可以具有默认流。默认流可让您轻松使用 RHEL 软件包而无需了解模块。默认流是活跃的,除非禁用了整个模块或启用了该模块的另一个流。
默认流在整个 RHEL 主发行版本中不会改变。始终考虑每个流的 生命周期。不要依赖默认流,在 RHEL 主发行版本结束前,默认流达到生命周期结束状态。
某些模块流依赖于其他模块流。例如, perl-App-cpanminus、perl-DBD-MySQL、perl-DBD-Pg、perl-DBD-SQLite、 perl-DBI、perl-YAML 和 freeradius 模块流取决于特定的 perl 模块流。
要为运行时用户应用程序或开发人员应用程序选择特定的流,请考虑以下几点:
- 所需的功能以及支持哪个组件版本
- 兼容性
- 生命周期 长度和更新计划
有关所有可用模块和流的列表,请查看 软件包清单。有关每个组件的更改,请查看 发行注记。
例 2.1. PostgreSQL 模块流
postgresql 模块在相应的流 9.6、10、12、13 和 15 中提供 PostgreSQL 数据库版本 9.6、10、12 和 13。流 10 是默认值。这意味着,如果要求 postgresql,系统会尝试安装 postgresql-10.6 软件包。
始终决定您要使用哪个模块流,并明确安装相应的版本。
其他资源