A.2. Kickstart 中的软件包选择

Kickstart 使用 %packages 命令启动的部分来选择要安装的软件包。您可以以这种方式安装软件包、组、环境、模块流和模块配置集。

A.2.1. 软件包选择部分

使用 %packages 命令启动一个 Kickstart 部分,该部分描述了要安装的软件包。%packages 部分必须以 %end 命令结尾。

您可以根据环境、组、模块流、模块配置集或者它们的软件包名称指定软件包。定义了包含相关软件包的几个环境和组。如需环境和组群列表,请参阅 Red Hat Enterprise Linux 9 安装 DVD 中的软件仓库 repository/repodata/*-comps-repository.architecture.xml 文件。

*-comps-repository.architecture.xml 文件包含描述可用环境(使用 <environment> 标签标记)和组( <group> 标签)的结构。每个条目都有一个 ID、用户可见值、名称、描述和软件包列表。如果为安装选择了组,则在软件包列表中标记了 mandatory 的软件包总会被安装;如果其它位置没有特别排除,标记了 default 的软件包也会被安装,标记为 optional 的软件包需要在其他地方被指定包括时才会安装,即使已经选择该组也是如此。

您可以使用其 ID(标签)或名称( <id> 标签)指定软件包组或环境 <name>

如果您不确定应该安装什么软件包,红帽建议您选择 Minimal Install 环境。Minimal Install 只提供运行 Red Hat Enterprise Linux 9 所需的软件包。这将显著降低系统受某个漏洞影响的机会。如果需要,可以在安装后再添加附加软件包。有关 Minimal Install 的详情,请参阅 安全强化 文档中的安装最小软件包挂载部分。请注意 : Initial Setup 无法在使用 Kickstart 文件安装系统后运行,除非安装中包含桌面环境和 X Window 系统,并启用了图形登录。

重要

要在 64 位系统中安装 32 位软件包:

  • %packages 部分指定 --multilib 选项
  • 使用构建该软件包的 32 位架构附加软件包名称;例如:glibc.i686

A.2.2. 软件包选择命令

这些命令可以在 Kickstart 文件的 %packages 部分中使用。

指定一个环境

@^ 符号开头的行形式指定要安装的整个环境:

%packages
@^Infrastructure Server
%end

这将安装属于 Infrastructure Server 环境一部分的所有软件包。Red Hat Enterprise Linux 9 安装 DVD 中的 repository/repodata/*-comps-repository.architecture.xml 文件包括了所有可用的环境。

在 Kickstart 文件中只能指定一个环境。如果指定了多个环境,则只使用最后指定的环境。

指定组

指定组,每个条目一行,以 @ 符号开头,然后是 *-comps-repository.architecture.xml 文件中给出的完整组群名称或者组群 ID。例如:

%packages
@X Window System
@Desktop
@Sound and Video
%end

Core 组总是被选择 - 不需要在 %packages 部分指定它。

指定单独的软件包

根据名称指定单个软件包,每个条目对应一行。您可以在软件包名称中使用星号字符 (*) 作为通配符。例如:

%packages
sqlite
curl
aspell
docbook*
%end

docbook* 条目包含软件包 docbook-dtdsdocbook-style,它们与通配符表示的模式匹配。

指定模块流的配置集

使用配置集语法为模块流指定配置集(一个条目为一行):

%packages
@module:stream/profile
%end

这会安装模块流指定配置集中列出的所有软件包。

  • 当模块指定了默认流时,您可以将其退出。如果没有指定默认流,您必须指定它。
  • 当模块流指定默认配置集时,您可以将其退出。如果没有指定默认配置集,您必须指定它。
  • 无法多次使用不同流安装模块。
  • 有可能安装同一模块和流的多个配置集。

模块和组使用以 @ 符号开头的相同语法。当某个模块和软件包组具有相同名称时,该模块会优先使用。

在 Red Hat Enterprise Linux 9 中,模块仅存在于 AppStream 软件仓库中。要列出可用的模块,请在安装的 Red Hat Enterprise Linux 9 系统上使用 dnf module list 命令。

也可以使用模块 Kickstart 命令启用模块流,然后通过直接命名模块流中包含的软件包来安装它们。

排除环境、组群或者软件包

使用前导短划线 (-) 指定安装中排除的软件包或组。例如:

%packages
-@Graphical Administration Tools
-autofs
-ipa*compat
%end
重要

不支持在 Kickstart 文件中只使用 * 安装所有可用软件包。

您可以使用多个选项更改 %packages 部分的默认行为。有些选项可以用于整个软件包选择,其它选项只与特定的组一起使用。

A.2.3. 通用软件包选择选项

以下选项可用于 %packages 部分。要使用某个选项,请将其附加到软件包选择部分的开头。例如:

%packages --multilib --ignoremissing
--default
安装默认软件包组。这与在互动安装过程中的软件包选择页面中没有其他选择时要安装的软件包组对应。
--excludedocs
不要安装软件包中的任何文档。在大多数情况下,这不包括通常安装在 /usr/share/doc 目录中的任何文件,但要排除的特定文件取决于各个软件包。
--ignoremissing
忽略安装源中缺少的软件包、组、模块流、模块配置集和环境,而不是停止安装来询问安装是中止还是继续。
--inst-langs
指定要安装的语言列表。请注意,这与软件包组级别选择不同。这个选项没有描述应该安装哪些软件包组,而是设定 RPM 宏控制应该安装单个软件包的转换文件。
--multilib

为多 lib 软件包配置安装的系统,允许在 64 位系统中安装 32 位软件包,并安装在这部分中指定的软件包。

通常在 AMD64 和 Intel 64 系统中,您只能安装 x86_64 和 noarch 软件包。但是,使用 --multilib 选项,您可以自动安装 32 位 AMD 和 i686 Intel 系统软件包(若有)可用。

这只适用于 %packages 部分明确指定的软件包。那些只作为相依性安装而没有在 Kickstart 文件中指定的软件包只能安装到需要它们的架构版本中,即使它们可用于更多构架。

用户可将 Anaconda 配置为在安装系统期间以 multilib 模式安装软件包。使用以下选项之一启用 multilib 模式:

  1. 使用以下行配置 Kickstart 文件:

    %packages --multilib --default
    %end
  2. 在引导安装镜像时添加 inst.multilib 引导选项。
--nocore

禁用 @Core 软件包组的安装,否则该安装默认为始终安装。使用 --nocore 禁用 @Core 软件包组应当仅用于创建轻量级容器;使用 --nocore 安装桌面或服务器系统将导致系统不可用。

备注
  • 使用 -@Core 来排除 @Core 软件包组中的软件包不起作用。排除 @Core 软件包组的唯一方式是使用 --nocore 选项。
  • @Core 软件包组定义为安装工作系统所需的一组最小软件包。它与软件包清单覆盖范围中定义的核心软件包无关。
--exclude-weakdeps
禁用从弱依赖项安装软件包。这些软件包都链接到由 Recommends 和 supplements 标记组成的所选软件包。默认情况下会安装弱依赖项。
--retries=
设置 DNF 尝试下载软件包的次数(尝试)。默认值为 10。这个选项只适用于安装过程中,不会影响安装的系统上的 DNF 配置。
--timeout=
以秒为单位设置 DNF 超时。默认值为 30。这个选项只适用于安装过程中,不会影响安装的系统上的 DNF 配置。

A.2.4. 特定软件包组的选项

这个列表中的选项仅适用于单个软件包组。不要在 Kickstart 文件中的 %packages 命令中使用它们,而是将它们附加到组名称中。例如:

%packages
@Graphical Administration Tools --optional
%end
--nodefaults
只安装组的强制软件包,而不是默认选择。
--optional

除了安装默认选择外,还要安装在 *-comps-repository.architecture.xml 文件中的组定义中标记为可选的软件包。

请注意,某些软件包组(如 Scientific Support)没有任何强制或默认软件包 - 仅包括可选软件包。在这种情况下,必须始终使用 --optional 选项,否则不会安装该组中的软件包。

重要

--nodefaults--optional 选项不能一起使用。在使用 --nodefaults 安装时只会安装必需的软件包,并在安装的系统的后安装过程中安装可选软件包。