模块简介

除了单个 RPM 包之外,AppStream 仓库还包含模块。模块是一组代表一个组件的 RPM 软件包,通常安装在一起。典型的模块包含应用程序包、特定于应用程序依赖库包、应用程序文档包和帮助器实用程序包。

后续各部分介绍模块内内容的组织和处理的更多功能:

  • 流 —— 按版本组织内容。

  • 配置文件 —— 按用途组织内容。

模块流

模块流是可以想象为 AppStream 仓库中的虚拟仓库的筛选器。模块流表示 AppStream 组件的版本。每个流独立地接收更新。

模块流可以是激活的,也可以是非激活的。激活流允许系统访问特定模块流中的 RPM 包,从而允许安装相应的组件版本。如果将流标记为默认流或通过用户操作显式启用流,则流处于激活状态。

在给定的时间点,特定模块的流只有一个是激活的。因此,一个系统上只能安装一个组件的一个版本。可以在不同的容器中使用不同的版本。

每个模块可以具有默认流,该默认流通常提供组件的最新或推荐版本。默认流使得以通常的方式安装 Circle Linux 包变得很容易,而不需要了解模块。除非已禁用整个模块或启用该模块的另一个流,否则默认流处于激活状态。

某些模块流依赖于其他模块流。例如, perl-App-cpanminusperl-DBD-MySQLperl-DBD-Pgperl-DBD-SQLiteperl-DBIperl-YAMLfreeradius 模块流依赖某些 perl 模块流。

示例 1. postgresql 模块流

postgresql 模块分别在流 9.6 和流 10 中提供 PostgreSQL 数据库版本 9.6 和 10,目前流 10 是默认版本。这意味着如果要求安装 postgresql,系统将尝试安装 postgresql-10.6 软件包。

模块配置文件

配置文件是针对特定用例(如服务器、客户端、开发、最小安装或其他)一起安装的推荐软件包的列表。这些包列表可以包含模块流之外的包,通常来自 BaseOS 仓库或流的依赖项。

使用配置文件安装包是为了方便用户而提供的一次性操作。它不会阻止安装或卸载模块提供的任何软件包。还可以通过使用同一模块流的多个配置文件来安装软件包,而无需任何其他操作。

每个模块流可以有任意数量的配置文件,包括无配置文件。对于任何给定的模块流,它的一个配置文件可以标记为默认,然后在没有显式指定其他配置文件时用于安装操作。但是,模块流不需要默认的配置文件。

示例 2. httpd 模块配置文件

提供 Apache 服务器的 httpd 模块提供以下用于安装的配置文件:

  • common —— 强化的生产就绪部署,默认配置文件。

  • devel —— 修改 httpd 所需的包

  • minimal —— 将提供运行 Web 服务器的最小软件包集