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-dtds
和docbook-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
模式:使用以下行配置 Kickstart 文件:
%packages --multilib --default %end
- 在引导安装镜像时添加 inst.multilib 引导选项。
--nocore
禁用
@Core
软件包组的安装,否则该安装默认为始终安装。使用--nocore
禁用@Core
软件包组应当仅用于创建轻量级容器;使用--nocore
安装桌面或服务器系统将导致系统不可用。备注--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
安装时只会安装必需的软件包,并在安装的系统的后安装过程中安装可选软件包。