安装、管理和删除用户空间组件
使用 YUM 软件管理工具管理 BaseOS 和 AppStream 存储库中的内容
摘要
对红帽文档提供反馈
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 单击顶部导航栏中的 Create。
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您的建议以改进。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 Red Hat Enterprise Linux 8 中的软件管理工具
在 Red Hat Enterprise Linux (RHEL) 8 中,使用 YUM 管理软件。YUM 基于 DNF 技术,它增加了对模块化功能的支持。
上游文档将技术识别为 DNF,该工具称为 DNF。因此,RHEL 8 中新的 YUM 工具返回的一些输出包括 DNF。
虽然 YUM 基于 DNF,但它与 RHEL 7 中使用的 YUM 兼容。对于软件安装,yum
命令及其大多数选项在 RHEL 8 中的工作方式与 RHEL 7 中相同。
所选的 YUM 插件和工具已移植到新的 DNF 后端,并可安装在 RHEL 7 中相同的名称下。软件包还提供兼容性符号链接。因此,您可以在通常的位置查找二进制文件、配置文件和目录。
RHEL 7 中 YUM 提供的旧 Python API 不再可用。您可以将插件和脚本迁移到 RHEL 8 中 YUM 提供的新的 DNF Python API 中。如需更多信息,请参阅 DNF API 参考。
第 2 章 RHEL 8 中的内容发布
在以下部分中,了解软件如何在 Red Hat Enterprise Linux 8 中分发。
2.1. 软件仓库
Red Hat Enterprise Linux (RHEL)通过不同的存储库分发内容,例如:
- BaseOS
- BaseOS 存储库中的内容由底层操作系统功能的核心组件组成,其为所有安装提供基础。此内容以 RPM 格式提供,它的支持条款与 RHEL 早期版本中的条款类似。
- AppStream
AppStream 仓库的内容包括额外的用户空间应用程序、运行时语言和数据库来支持各种工作负载和使用案例。AppStream 中的内容以以下格式提供:
- RPM 软件包
- 模块,它们是 RPM 格式的扩展
重要RHEL 需要 BaseOS 和 AppStream 内容集,它们在所有 RHEL 订阅中都提供。有关安装说明,请参阅从安装介质主动安装 RHEL。
- CodeReady Linux Builder
- CodeReady Linux Builder 存储库在所有 RHEL 订阅中可用。它为开发人员提供了额外的软件包。红帽不支持 CodeReady Linux Builder 存储库中包含的软件包。
其他资源
2.2. 应用程序流
Red Hat Enterprise Linux (RHEL) 8 引入了多个名为 Application Streams 的用户空间组件版本的概念。这些组件的交付和更新频率会比核心操作系统软件包更频繁。这为自定义 Red Hat Enterprise Linux RHEL 提供了更大的灵活性,而不影响平台或特定部署的底层稳定性。Application Streams 通过 AppStream 软件仓库提供。
提供以下格式的应用程序流:
- RPM 软件包
- 模块,它们是 RPM 格式的扩展
每个 Application Stream 都有自己的生命周期,它可能比 RHEL 8 的生命周期相同或更短。如需更多信息,请参阅 Red Hat Enterprise Linux Application Streams 生命周期。
始终决定您要安装应用程序流的哪个版本,并确保首先查看 RHEL 应用程序流生命周期。
2.3. 模块简介
模块是代表一个组件的一组 RPM 软件包。典型的模块包含以下软件包类型:
- 带有应用程序的软件包
- 带有特定于应用程序依赖项库的软件包
- 带有应用程序文档的软件包
- 带有助手工具的软件包
2.3.1. 模块流
模块流是可以作为 AppStream 物理存储库中的虚拟存储库的过滤器。AppStream 组件的模块流版本。每个流都独立接收更新,它们可以依赖于其他模块流。
模块流可以是活跃的或者不活跃的。活跃的流可让系统访问特定模块流中的 RPM 软件包,允许安装相应的组件版本。
在以下情况下,流处于活跃状态:
- 如果管理员明确启用了它。
- 如果流是启用的模块的依赖项。
- 如果流是默认流。每个模块都可以具有默认流。默认流可让您轻松使用 RHEL 软件包而无需了解模块。默认流处于活跃状态,除非禁用了整个模块或启用了该模块的另一个流。
给定时间点上只能激活一个特定模块的流。因此,系统中只能安装一个组件版本。不同的容器可以使用不同的版本。
默认流在整个 RHEL 主发行版本中不会改变。始终考虑每个流的 生命周期。不要依赖默认流,在 RHEL 主发行版本结束前,默认流达到生命周期结束状态。
某些模块流依赖于其他模块流。例如,以下模块流依赖于特定的 perl
模块流:
-
perl-App-cpanminus
-
perl-DBD-MySQL
-
perl-DBD-Pg
-
perl-DBD-SQLite
-
perl-DBI
-
perl-YAML
-
freeradius
在为运行时用户应用程序或开发人员应用程序选择特定流前,请考虑以下几点:
- 所需的功能以及支持哪个组件版本。
- 与您的应用程序或用例兼容。
- Application Stream 和您的更新计划 的生命周期。
有关所有可用模块和流的列表,请查看 软件包清单。有关每个组件的更改,请查看 发行注记。
其他资源
2.3.2. 模块配置集
模块配置文件是为特定用例要一起安装的推荐的软件包列表,如服务器、客户端、开发、最小安装或其他。这些软件包列表可以包含模块流以外的软件包,通常是来自 BaseOS 存储库或流依赖项的软件包。
使用配置集安装软件包是为方便用户提供的一次性操作。它不会阻止安装或卸载该模块提供的任何软件包。您还可以使用同一模块流的多个配置集安装软件包,而无需进一步准备步骤。
每个模块流可以有任何数量的配置集,包括没有。对于任何给定模块流,其某些配置集可以被标记为 default,然后如果您未明确指定配置集,则用于配置集安装操作。但是,模块流的默认配置文件的存在不是必需的。
例 2.1. httpd 模块配置集
提供 Apache Web 服务器的 httpd 模块为安装提供以下配置集:
# yum module list httpd
Name Stream Profiles Summary
httpd 2.4 [d] common [d], devel, minimal Apache HTTP Server
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
在本例中,提供了以下配置文件:
-
常见
:生产环境就绪的软件包。这是默认的配置文件([d]
)。 -
devel
:对httpd
进行修改所需的软件包。 -
最小
:提供正在运行的 Apache Web 服务器的最小软件包集合。
第 3 章 配置 YUM
YUM 及相关工具的配置信息保存在 /etc/yum.conf
文件中。此文件包含一个必需的 [main]
部分,可用于设置具有全局效果的 YUM 选项。
3.1. 查看当前的 YUM 配置
/etc/yum.conf
文件中的 [main]
部分只包含明确设置的设置。但是,您可以显示 [main]
部分的所有设置,包括尚未设置的部分,因此请使用它们的默认值。
步骤
显示全局
YUM
配置:# yum config-manager --dump
其他资源
-
您系统上的
dnf.conf (5)
手册页
3.2. 设置 YUM 主要选项
/etc/yum.conf
配置文件包含一个 [main]
部分。本节中的键值对会影响 YUM 如何运行并对待存储库。
步骤
-
编辑
/etc/yum.conf
文件。 -
根据您的要求更新
[main]
部分。 - 保存更改。
其他资源
-
[main] OPTIONS
和OPTIONS FOR BOTH [main] AND REPO
sectiona on you system 的dnf.conf (5)
man page
3.3. 启用和禁用 YUM 插件
在 YUM 工具中,插件会被默认加载。但是,您可以影响 YUM 加载的插件。
禁用所有插件只用于诊断潜在的问题。YUM 需要特定的插件,如 product-id
和 subscription-manager
,并且禁用它们会导致 Red Hat Enterprise Linux 无法从 Content Delivery Network (CDN)安装或更新软件。
步骤
使用以下方法之一来影响 YUM 使用插件的方式:
要在全局范围内启用或禁用 YUM 插件的加载,请将
plugins
参数添加到/etc/dnf/dnf.conf
文件的[main]
部分。-
设置
plugins=1
(默认)以启用载入所有 YUM 插件。 -
设置
plugins=0
以禁用载入所有 YUM 插件。
-
设置
-
要禁用特定的插件,请将
enabled=False
添加到/etc/dnf/plugins/<plug-in_name>.conf
文件的[main]
部分中。 要禁用特定命令的所有 YUM 插件,请在命令中附加--
noplugins
选项。例如,要为单个 update 命令禁用 YUM 插件,请输入:# yum --noplugins update
要为单个命令禁用特定的 YUM 插件,请在命令中附加--
disableplugin=plugin-name
选项。例如,要为单个 update 命令禁用特定的 YUM 插件,请输入:# yum update --disableplugin=<plugin_name>
要为单个命令启用特定的 YUM 插件,请在命令中附加--
enableplugin=plugin-name
选项。例如,要为单个 update 命令启用特定的 YUM 插件,请输入:# yum update --enableplugin=<plugin_name>
3.4. 从 YUM 操作中排除软件包
您可以使用 excludepkgs
选项,将 YUM 配置为排除任何 YUM 操作中的软件包。您可以在 /etc/yum.conf
文件的 [main]
或 repository 部分中定义 excludepkgs
。
您可以使用 --disableexcludes
选项,临时禁止从操作中排除配置的软件包。
步骤
通过在
/etc/yum.conf
文件中添加以下行,从 YUM 操作中排除软件包:excludepkgs=<package_name_1>,<package_name_2> ...
或者,使用全局表达式而不是软件包名称来定义您要排除的软件包。如需更多信息,请参阅在 yum 输入 中指定全局表达式。
其他资源
-
您系统上的
dnf.conf (5)
手册页
第 4 章 搜索 RHEL 8 内容
在以下部分中,了解如何使用 YUM 查找和检查 Red Hat Enterprise Linux 8 中 AppStream 和 BaseOS 软件仓库中的内容。
4.1. 搜索软件包
要识别提供您需要的软件的软件包,您可以使用 YUM 搜索存储库。
步骤
根据您的场景,使用以下选项之一来搜索存储库:
要在软件包的名称或摘要中搜索术语,请输入:
$ yum search <term>
要在软件包的名称、概述或描述中搜索术语,请输入:
$ yum search --all <term>
请注意,在描述中使用
--all
选项进行额外搜索比普通搜索操作要慢。
4.2. 列出软件包
您可以使用 YUM 显示存储库中可用的软件包列表及其版本。
步骤
列出所有可用软件包的最新版本,包括构架、版本号以及从其中安装的存储库:
$ yum list --all ... cups.x86_64 1:2.2.6-57.el8 @rhel-AppStream cups-client.x86_64 1:2.2.6-57.el8 @rhel-AppStream cups-devel.i686 1:2.2.6-57.el8 rhel-AppStream cups-devel.x86_64 1:2.2.6-57.el8 rhel-AppStream ...
存储库前面的
@
符号表示此行中的软件包当前已安装。另外,要显示所有可用的软件包,包括版本号和架构,请输入:
$ yum list --all ... cups-1:2.2.6-57.el8.x86_64 cups-client-1:2.2.6-57.el8.x86_64 cups-devel-1:2.2.6-57.el8.i686 cups-devel-1:2.2.6-57.el8.x86_64 ...
另外,您可以使用其他选项而不是
--all
来过滤输出,例如:-
使用
--installed
仅列出已安装的软件包。 -
使用
--available
列出所有可用软件包。 -
使用
--upgrades
列出新版本提供的软件包。
-
使用
您可以通过将全局表达式附加为参数来过滤结果。如需更多信息,请参阅在 yum 输入 中指定全局表达式。
4.3. 列出软件仓库
要获得系统上启用和禁用的存储库的概述,您可以列出它们。
步骤
列出系统中所有启用的软件仓库,:
# yum repolist
要只显示某些存储库,请在命令中附加以下选项之一:
-
附加
--disabled
只列出禁用的存储库。 -
附加
--all
列出启用和禁用的存储库。
-
附加
可选:列出仓库的附加信息:
# yum repoinfo <repository_name>
注意您可以通过将全局表达式附加为参数来过滤结果。如需更多信息,请参阅在 yum 输入 中指定全局表达式。
4.4. 显示软件包信息
您可以查询 YUM 存储库来显示软件包的详情,如下所示:
- Version
- 发布
- 架构
- 软件包大小
- 描述
步骤
显示一个或多个可用软件包的信息:
# yum info <package_name>
这个命令显示当前安装的软件包的信息,如果有的话,显示存储库中的较新版本。
您可以通过将全局表达式附加为参数来过滤结果。如需更多信息,请参阅在 yum 输入 中指定全局表达式。
4.5. 列出软件包组和它们提供的软件包
软件包组捆绑多个软件包,您可以使用软件包组在一个步骤中安装分配给组的所有软件包。但是,在安装前必须识别所需软件包组的名称。
步骤
列出已安装的和可用的组:
# yum group list
请注意,您可以通过在
yum group list
命令中附加-installed
and-available
选项来过滤结果。通过使用 --hidden 选项,您可以在输出中显示隐藏组。列出特定组中包含的强制的、可选的和默认的软件包:
# yum group info <group_name>
注意您可以通过将全局表达式附加为参数来过滤结果。如需了解更多详细信息,请参阅 在 yum 输入 中指定全局表达式。
可选:查看已安装的和可用的组数量:
# yum group summary
4.6. 列出可用模块及其内容
通过搜索模块并使用 YUM 显示它们的信息,您可以识别存储库中可用的模块,并在安装模块前选择适当的流。
步骤
使用以下方法之一列出模块信息:
列出所有可用模块:
$ yum module list Name Stream Profiles Summary ... nodejs 18 common [d], development, minimal, s2i Javascript runtime postgresql 15 client, server [d] PostgreSQL server and client module ... Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
使用
yum module list <module_name
> 命令列出相同的信息,但只列出特定模块。搜索哪个模块提供了某个软件包:
$ yum module provides <package_name>
例如,要显示哪些模块和配置文件提供了
npm
软件包,请输入:$ yum module provides npm ... npm-1:8.19.4-1.16.20.2.4.module+el8.9.0+21536+8fdee1fb.x86_64 Module : nodejs:16:8090020240315081818:a75119d5:x86_64 Profiles : common development s2i Repo : rhel-AppStream Summary : Javascript runtime ...
使用以下方法之一列出模块详情:
列出模块的所有详情,包括描述、所有配置文件的列表以及模块提供的所有软件包的列表:
$ yum module info <module_name>
例如,要显示
nodejs
模块的详情,请输入:$ yum module info nodejs ... Name : nodejs Stream : 20 Version : 8090020240228165436 Context : a75119d5 Architecture : x86_64 Profiles : common [d], development, minimal, s2i Default profiles : common Repo : rhel-AppStream Summary : Javascript runtime Description : Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. Requires : platform:[el8] Artifacts : nodejs-1:20.11.1-1.module+el8.9.0+21380+12032667.src : nodejs-1:20.11.1-1.module+el8.9.0+21380+12032667.x86_64 ...
列出每个模块配置文件安装了哪些软件包:
$ yum module info --profile <module_name>
注意每个配置集会安装不同的软件包集合,包括其依赖性。
例如,要显示
nodejs
模块的此信息,请输入:$ yum module info --profile nodejs ... Name : nodejs:18:8090020240301110609:a75119d5:x86_64 common : nodejs : npm development : nodejs : nodejs-devel : npm minimal : nodejs s2i : nodejs : nodejs-nodemon : npm ...
其他资源
4.7. 在 YUM 输入中指定全局表达式
您可以通过将一个或多个全局表达式附加为参数来过滤 yum
命令的结果。
步骤
如果您在 yum 命令中使用全局表达式,则使用以下方法之一:
将整个全局表达式用单引号或双引号括起来:
# yum provides "*/<file_name>"
请注意,您必须在 <
;file_name
> 之前使用一个反斜杠(/
)字符作为绝对路径,或者为*/
,如果完整路径未知,则使用通配符。在它们前面使用反斜杠(
\
)字符转义通配符字符:# yum provides \*/<file-name>
4.8. 其他资源
- 在 RHEL 8 中列出内容的命令
-
系统中
yum (8)
手册页
第 5 章 安装 RHEL 8 内容
在以下部分中,了解如何使用 YUM 在 Red Hat Enterprise Linux 8 中安装内容。
5.1. 安装软件包
如果软件不是默认安装的一部分,您可以手动安装它。YUM 会自动解析并安装依赖项。
先决条件
- 可选:您知道您要安装的软件包的名称。
如果要安装的软件包由模块流提供,则会启用对应的模块流。如需更多信息,请参阅 启用模块流。
注意如果软件包是由标记为默认的模块流提供的,则
yum
会在安装此软件包前自动启用该模块流。
步骤
使用以下方法之一安装软件包:
要从存储库安装软件包,请输入:
# yum install <package_name_1> <package_name_2> ...
如果您在支持多个构架(如 AMD64 和 Intel 64)的系统中安装软件包,您可以通过将其附加到软件包名称来指定软件包的架构:
# yum install <package_name>.<architecture>
如果您只知道软件包提供的文件的路径,但知道软件包名称,您可以使用此路径安装相应的软件包:
# yum install <path_to_file>
要安装本地 RPM 文件,请输入:
# yum install <path_to_RPM_file>
如果软件包有依赖项,还要指定到这些 RPM 文件的路径。否则,YUM 从存储库下载依赖项,或者如果存储库中不可用,则会失败。
其他资源
5.2. 安装软件包组
软件包组捆绑多个软件包,您可以使用软件包组在一个步骤中安装分配给组的所有软件包。
流程
使用以下方法之一安装软件包组:
要按组名称安装软件包组,请输入以下命令之一:
# yum group install <group_name> # yum install @<group_name>
要根据 groupID 安装软件包组,请输入:
# yum group install <group_ID>
5.3. 启用模块流
如果要安装的软件包由模块流提供,您必须启用对应的模块流。
如果软件包是由标记为默认的模块流提供的,则 yum
会在安装此软件包前自动启用该模块流。
建议您始终选择特定的模块流进行安装。始终考虑每个流的 生命周期。
请注意,某些默认模块流在 RHEL 主发行版本结束前到达生命周期结束状态。
步骤
启用模块流:
# yum module enable <module_name>:<stream>
注意如果之前因为默认而激活的模块的另一个流会变得不活跃。
5.4. 安装模块化内容
对于某些软件,红帽提供了模块。您可以使用模块安装特定版本(流)和一组软件包(配置文件)。
始终考虑模块流的 生命周期。
先决条件
- 您没有任何从同一模块的另一个流安装的软件包。
流程
列出提供您要安装的软件包的模块:
# yum module list <module_name>
例如,要列出提供
postgresql-server
软件包的模块,请输入:$ yum module list postgresql Name Stream Profiles Summary postgresql 9.6 client, server [d] PostgreSQL server and client module postgresql 10 [d] client, server [d] PostgreSQL server and client module postgresql 12 client, server [d] PostgreSQL server and client module postgresql 13 client, server [d] PostgreSQL server and client module postgresql 15 client, server [d] PostgreSQL server and client module Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
输出显示
postgresql
模块与流9.6
、10
、12
、13
和15
一起提供。默认流为10
([d]
)。安装所选模块流:
# yum module install <module-name>:<stream>/<profile>
如果定义了流的默认配置集,您可以在命令中省略 /&
lt;profile
> 来安装此流的默认配置集。例如,要为
postgresql
模块流13
安装默认配置集(服务器
),请输入:# yum module install postgresql:13 ... Dependencies resolved. =================================================================================================================== Package Architecture Version Repository Size =================================================================================================================== Installing group/module packages: postgresql-server x86_64 13.10-1.module+el8.7.0+18279+1ca8cf12 rhel-AppStream 5.6 M Installing dependencies: libicu x86_64 60.3-2.el8_1 rhel 8.8 M libpq x86_64 13.5-1.el8 rhel-AppStream 198 k postgresql x86_64 13.10-1.module+el8.7.0+18279+1ca8cf12 rhel-AppStream 1.5 M Installing module profiles: postgresql/server Enabling module streams: postgresql 13
验证
验证是否启用了正确的模块流(
[e]
),并且安装了所需的配置文件([i]
):# yum module list postgresql ... Name Stream Profiles Summary postgresql 9.6 client, server [d] PostgreSQL server and client module postgresql 10 [d] client, server [d] PostgreSQL server and client module postgresql 12 client, server [d] PostgreSQL server and client module postgresql 13 [e] client, server [d] [i] PostgreSQL server and client module postgresql 15 client, server [d] PostgreSQL server and client module postgresql 16 client, server [d] PostgreSQL server and client module Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
5.5. 指定安装的软件包详情
您可以为精确的软件包安装过程指定软件包详情。要做到这一点,在 yum install
命令中附加以下后缀来明确定义如何解析参数:
-
use
-n
指定软件包的确切名称。 -
use
-na
指定确切的软件包名称和构架。 -
use
-nevra
指定确切的软件包名称、epoch、版本、发行和架构。
流程
根据您的场景,使用以下选项之一优化软件包安装过程:
要使用其确切的名称安装软件包,请输入:
# yum install-n <package_name>
要使用其确切的名称和构架安装软件包,请输入:
# yum install-na <package_name>.<architecture>
要使用其确切的名称、epoch、版本、发行和架构安装软件包,请输入:
# yum install-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
5.6. 其他资源
- 在 RHEL 8 中安装内容的命令
-
系统中
yum (8)
手册页
第 6 章 更新 RHEL 8 内容
通过 YUM,您可以检查您的系统是否有待处理的更新。您可以列出需要更新的软件包,并选择更新单个软件包、多个软件包或者所有软件包。如果您选择要更新的软件包有依赖项,这些依赖项也会被更新。
6.1. 检查更新
要识别您系统上安装的软件包是否有可用的更新,您可以列出它们。
流程
检查已安装的软件包的可用更新:
# yum check-update
输出返回有可用更新的软件包及其依赖项列表。
6.2. 更新软件包
您可以使用 YUM 同时更新单个软件包或所有软件包及其依赖项。
当对内核应用更新时,无论您是否使用 yum update
或 yum install
命令,YUM 始终会安装一个新内核。请注意,这只适用于使用 installonlypkgs
YUM 配置选项识别的软件包。例如,这些软件包包括 kernel
、kernel-core
和 kernel-modules
软件包。
根据您的场景,使用以下选项之一应用更新:
要更新所有软件包及其依赖项,请输入:
# yum update
要更新单个软件包,请输入:
# yum update <package_name>
如果您在 BIOS 或 IBM Power 系统上升级了 GRUB 引导装载程序软件包,请重新安装 GRUB。请参阅 重新安装 GRUB。
6.3. 更新软件包组
软件包组捆绑多个软件包,您可以使用软件包组在一个步骤中更新分配给组的所有软件包。
流程
从特定软件包组更新软件包:
# yum group update <group_name>
如果您在 BIOS 或 IBM Power 系统上升级了 GRUB 引导装载程序软件包,请重新安装 GRUB。请参阅 重新安装 GRUB。
第 7 章 在 RHEL 8 中自动化软件更新
DNF Automatic 是 YUM 的替代命令行界面,它适用于使用 systemd
计时器、cron 作业和其他此类工具自动和常规执行。
DNF Automatic 根据需要同步软件包元数据,检查可用更新,然后根据您配置工具的方式执行以下操作之一:
- Exit
- 下载更新的软件包
- 下载并应用更新
然后,通过选定的机制(如标准输出或电子邮件)报告操作的结果。
7.1. 安装 DNF Automatic
要自动并定期检查和下载软件包更新,您可以使用 dnf-automatic
软件包提供的 DNF Automatic 工具。
流程
安装
dnf-automatic
软件包:# yum install dnf-automatic
验证
通过确认
dnf-automatic
软件包是否存在,来验证安装是否成功:# rpm -qi dnf-automatic
7.2. DNF Automatic 配置文件
默认情况下,DNF Automatic 使用 /etc/dnf/automatic.conf
作为其配置文件来定义其行为。
配置文件被分隔为以下主题部分:
[commands]
设置 DNF Automatic 的操作模式。
警告[commands]
部分中操作模式的设置会被所有计时器单元的 systemd 定时器单元覆盖,dnf-automatic.timer
除外。[emitters]
定义如何报告 DNF Automatic 的结果。
[command]
部分提供命令发布程序配置。
[command_email]
为用来发送电子邮件的外部命令提供电子邮件发布程序配置。
[email]
提供电子邮件发布程序配置。
[base]
覆盖 YUM 主配置文件中的设置。
使用 /etc/dnf/automatic.conf
文件的默认设置,DNF Automatic 会检查可用的更新,下载这些更新,并以标准输出的形式报告结果。
其他资源
- 您系统上的 dnf-automatic (8)手册页
- dnf-automatic 软件包中包含的 systemd 计时器单元的概述
7.3. 启用 DNF Automatic
要运行 DNF Automatic 一次,您必须启动一个 systemd 计时器单元。但是,如果要定期运行 DNF Automatic,您必须启用计时器单元。您可以使用 dnf-automatic
软件包提供的计时器单元之一,或者您可以为计时器单元创建一个插入文件来调整执行时间。
先决条件
-
您可以通过修改
/etc/dnf/automatic.conf
配置文件来指定 DNF Automatic 的行为。
流程
立即启用并执行 systemd 计时器单元:
# systemctl enable --now <timer_name>
如果想只启用计时器,而不立即执行它,请省略
--now
选项。您可以使用以下计时器:
-
dnf-automatic-download.timer
:下载可用更新。 -
dnf-automatic-install.timer
:下载并安装可用更新。 -
dnf-automatic-notifyonly.timer
:报告可用的更新。 -
dnf-automatic.timer
:下载、下载并安装,或报告可用更新。
-
验证
验证计时器是否已启用:
# systemctl status <timer_name>
可选:检查系统中的每个计时器最后一次运行:
# systemctl list-timers --all
其他资源
-
您系统上的
dnf-automatic (8)
手册页 - dnf-automatic 软件包中包含的 systemd 计时器单元的概述
7.4. dnf-automatic 软件包中包含的 systemd 计时器单元的概述
systemd 定时器单元优先并覆盖 /etc/dnf/automatic.conf
配置文件中有关下载和应用更新的设置。
例如,如果您在 /etc/dnf/automatic.conf
配置文件中设置了 download_updates = yes
选项,但您已激活了 dnf-automatic-notifyonly.timer
单元,则不会下载软件包。
计时器单元 | 功能 | 覆盖 /etc/dnf/automatic.conf 文件的 [commands] 部分中的 apply_updates 和 download_updates 设置? |
---|---|---|
| 下载软件包以便进行更新。
这个计时器单元没有安装更新的软件包。要执行安装,您必须运行 | 是 |
| 下载并安装更新的软件包。 | 是 |
| 仅下载存储库数据,以保持存储库缓存最新,并通知您有关可用的更新。 这个计时器单元没有下载或安装更新的软件包 | 是 |
|
下载和应用更新时此计时器的行为由 这个计时器下载软件包,但不安装它们。 | 否 |
其他资源
-
您系统上的
dnf-automatic (8)
手册页
第 8 章 删除 RHEL 8 内容
在以下部分中,了解如何使用 YUM 删除 Red Hat Enterprise Linux 8 中的内容。
8.1. 删除安装的软件包
您可以使用 YUM 删除系统上安装的单个软件包或多个软件包。如果您要删除的任何软件包都有未使用的依赖项,YUM 也会卸载这些依赖项。
流程
删除特定软件包:
# yum remove <package_name_1> <package_name_2> ...
8.2. 删除软件包组
软件包组捆绑多个软件包。您可以使用软件包组在单个步骤中删除分配给组的所有软件包。
流程
使用以下方法之一安装软件包组:
要按组名称删除软件包组,请输入以下命令之一:
# yum group remove <group_name> # yum remove @<group_name>
要根据 groupID 删除软件包组,请输入:
# yum group remove <group_ID>
8.3. 删除安装的模块内容
当删除安装的模块内容时,您可以从 所选配置集 或整个 流中删除软件包。
YUM 会尝试删除所有名称与安装配置集或流的软件包对应的软件包,包括其依赖软件包。在进行操作前,务必检查要删除的软件包列表,特别是您是否在系统中启用了自定义软件仓库。
8.3.1. 从安装的配置集中删除软件包
当您删除安装有配置集的软件包时,所有名称与配置集安装的软件包相对应的软件包都会被删除。这包括其依赖项,但被其他配置集所需的软件包除外。
要从所选流中删除所有软件包,请完成 从模块流中删除所有软件包 中的步骤。
先决条件
-
使用
yum module install module_name:stream/profile命令安装
所选配置集,或使用yum install module_name:stream命令作为
默认配置文件。
流程
卸载属于所选配置文件的软件包:
# yum module remove <module_name>:<stream>/<profile>
例如,要从
php:7.3
模块流的devel
配置集中删除软件包,请输入:# yum module remove php:7.3/devel (...) Dependencies resolved. ========================================================================= Package Arch Version Repository Size ========================================================================= Removing: libzip x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096 @rhel-8-for-x86_64-appstream-rpms 313 k php-devel x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 5.3 M php-pear noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096 @rhel-8-for-x86_64-appstream-rpms 2.1 M php-pecl-zip x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096 @rhel-8-for-x86_64-appstream-rpms 119 k php-process x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 117 k Removing unused dependencies: autoconf noarch 2.69-27.el8 @rhel-8-for-x86_64-appstream-rpms 2.2 M ... Disabling module profiles: php/devel Transaction Summary ========================================================================= Remove 64 Packages Freed space: 193 M Is this ok [y/N]: y
警告在进行删除事务前,请检查
Removing:
和Removing unused dependencies:
中的软件包列表。这个事务会删除请求的软件包、未使用的依赖项和依赖的软件包,这可能导致系统故障。或者,从流中的所有安装配置集中卸载软件包:
# yum module remove <module_name>:<stream>
注意这些操作不会从不属于任何配置集的流中删除软件包。
验证
验证正确的配置文件是否已删除:
$ yum module info php ... Name : php Stream : 7.3 [e] [a] Version : 8020020200715124551 Context : ceb1cf90 Architecture : x86_64 Profiles : common [d] [i], devel, minimal [i] Default profiles : common Repo : rhel-AppStream ... Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive
当前安装
devel
以外的所有配置集([i]
)。
其他资源
8.3.2. 从模块流中删除所有软件包
当您删除使用模块流安装的软件包时,所有名称与流安装的软件包对应的软件包都会被删除。这包括其依赖项,但其他模块所需的软件包除外。
要从所选的配置文件中只删除软件包,请完成 从安装的配置文件中删除软件包 中的步骤。
先决条件
- 启用模块流,并至少安装流中的一些软件包。
流程
从所选流中删除所有软件包:
# yum module remove --all <module_name>:<stream>
例如,要从
php:7.3
模块流中删除所有软件包,请输入:# yum module remove --all php:7.3 (...) Dependencies resolved. ========================================================================= Package Arch Version Repository Size ========================================================================= Removing: libzip x86_64 1.5.2-1.module+el8.1.0+3189+a1bff096 @rhel-8-for-x86_64-appstream-rpms 313 k php-cli x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 11 M php-common x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 6.5 M php-devel x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 5.3 M php-fpm x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 5.6 M php-json x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 53 k php-mbstring x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 1.9 M php-pear noarch 1:1.10.9-1.module+el8.1.0+3189+a1bff096 @rhel-8-for-x86_64-appstream-rpms 2.1 M php-pecl-zip x86_64 1.15.4-1.module+el8.1.0+3189+a1bff096 @rhel-8-for-x86_64-appstream-rpms 119 k php-process x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 117 k php-xml x86_64 7.3.5-5.module+el8.1.0+4560+e0eee7d6 @rhel-8-for-x86_64-appstream-rpms 557 k Removing unused dependencies: autoconf noarch 2.69-27.el8 @rhel-8-for-x86_64-appstream-rpms 2.2 M ... Disabling module profiles: php/common php/devel php/minimal Transaction Summary ========================================================================= Remove 73 Packages Freed space: 220 M Is this ok [y/N]: y
警告在进行删除事务前,请检查
Removing:
和Removing unused dependencies:
中的软件包列表。这个事务会删除请求的软件包、未使用的依赖项和依赖的软件包,这可能导致系统故障。可选:输入以下命令之一重置或禁用流:
# yum module reset <module_name> # yum module disable <module_name>
验证
验证所选模块流中的所有软件包是否都已删除:
$ yum module info php ... Name : php Stream : 7.3 [e] [a] Version : 8020020200715124551 Context : ceb1cf90 Architecture : x86_64 Profiles : common [d], devel, minimal Default profiles : common ... Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled, [a]ctive
php
模块的7.3
流当前已启用([e]
),但没有安装此流中的软件包([i]
)。
其他资源
8.4. 指定删除的软件包详情
您可以为准确的软件包删除过程指定软件包详情。要做到这一点,请在 yum remove
命令中附加以下后缀来明确定义如何解析参数:
-
use
-n
指定软件包的确切名称。 -
use
-na
指定确切的软件包名称和构架。 -
use
-nevra
指定确切的软件包名称、epoch、版本、发行和架构。
流程
根据您的场景,使用以下选项之一优化软件包删除过程:
要使用其确切的名称删除软件包,请输入:
# yum remove-n <package_name>
要使用其确切的名称和构架删除软件包,请输入:
# yum remove-na <package_name>.<architecture>
要使用其确切的名称、epoch、版本、发行和架构来删除软件包,请输入:
# yum remove-nevra <package_name>-<epoch>:<version>-<release>.<architecture>
8.5. 其他资源
- 在 RHEL 8 中删除内容的命令
-
系统中
yum (8)
手册页
第 9 章 处理软件包管理历史记录
使用 yum history
命令,您可以查看以下信息:
- YUM 事务的时间线.
- 交易发生的日期和时间。
- 受交易影响的软件包的数量。
- 交易是否成功或被中止。
- RPM 数据库是否在交易之间更改了。
您还可以使用 yum history
命令来撤销事务。
9.1. 列出交易
您可以使用 YUM 执行以下任务:
- 列出最新的交易。
- 列出对所选软件包的最新操作。
- 显示特定交易的详细信息。
流程
根据您的场景,使用以下选项之一显示交易信息:
要显示所有最新的 YUM 事务列表,请输入:
# yum history
输出包含以下信息:
-
Action (s)
列显示在交易期间执行了哪种操作类型,如 Install (I
)、Upgrade (U
)、删除(E
)和其他操作。 Altered
列显示事务期间执行的操作数。操作数也可以后跟事务的结果。有关
Action (s)
和Altered
列的值的更多信息,请参阅系统中的yum (8)
手册页。
-
要显示对所选软件包的所有最新操作的列表,请输入:
# yum history list <package_name>
要显示特定交易的详情,请输入:
# yum history info <transaction_id>
您可以通过将全局表达式附加为参数来过滤结果。如需了解更多详细信息,请参阅 在 yum 输入 中指定全局表达式。
其他资源
-
系统中
yum (8)
手册页
9.2. 恢复 YUM 事务
如果要撤销事务期间执行的操作,恢复 YUM 事务非常有用。例如,如果您使用 yum install
命令安装多个软件包,您可以通过恢复安装事务来一次性卸载这些软件包。
您可以使用以下方法恢复 YUM 事务:
-
使用
yum history undo
命令恢复单个 YUM 事务。 -
使用
yum history rollback
命令恢复指定事务和最后一个事务之间执行的所有 YUM 事务。
不支持使用 yum history undo
和 yum history rollback
命令降级 RHEL 系统软件包到旧版本。这尤其涉及 selinux
、selinux-policy-*
、kernel
和 glibc
软件包,以及 glibc
的依赖项,如 gcc
。因此,不建议将系统降级到次版本(例如,从 RHEL 8.1 到 RHEL 8.0),因为它可能会使系统处于不正确的状态。
9.2.1. 恢复单个 YUM 事务
您可以使用 yum history undo
命令恢复在单个事务中执行的步骤:
-
如果事务安装了新软件包,
yum history undo
会卸载该软件包。 -
如果事务卸载了软件包,
yum history undo
会重新安装该软件包。 -
如果旧的软件包仍然可用,
yum history undo
命令还会尝试将所有更新的软件包降级到之前的版本。
如果旧的软件包版本不可用,则使用 yum history undo
命令的降级会失败。
流程
确定您要恢复的事务的 ID:
# yum history ID | Command line | Date and time | Action(s) | Altered -------------------------------------------------------------------- 13 | install zip | 2022-11-03 10:49 | Install | 1 12 | install unzip | 2022-11-03 10:49 | Install | 1
可选:通过显示其详情来验证您要恢复的事务:
# yum history info <transaction_id>
恢复事务:
# yum history undo <transaction_id>
例如,如果要卸载之前安装的
unzip
软件包,请输入:# yum history undo 12
如果要恢复最后一个事务,请输入:
# yum history undo last
9.2.2. 恢复多个 YUM 事务
您可以使用 yum history rollback
命令恢复指定事务和最后一个事务之间执行的所有 YUM 事务。请注意,交易 ID 指定的交易保持不变。
流程
确定您要恢复到的状态的事务 ID:
# yum history ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------ 14 | install wget | 2022-11-03 10:49 | Install | 1 13 | install unzip | 2022-11-03 10:49 | Install | 1 12 | install vim-X11 | 2022-11-03 10:20 | Install | 171 EE
恢复指定的事务:
# yum history rollback <transaction_id>
例如,要恢复到
wget
和unzip
软件包安装前的状态,请输入:# yum history rollback 12
或者,要恢复事务历史记录中的所有事务,请使用事务 ID 1:
# yum history rollback 1
第 10 章 管理自定义软件存储库
您可以在 /etc/yum.conf
文件中配置一个仓库。或者 /etc/yum.repos.d/
目录中的 .repo
文件。
建议您在 /etc/yum.repos.d/
中的新或现有 .repo
文件中定义仓库,因为 YUM 读取所有带有 .repo
文件扩展名的文件。
/etc/yum.conf
文件包含 [main]
部分,可以包含一个或多个可用于设置特定存储库选项的存储库部分([ <repository_ID> ]
)。您在 /etc/yum.conf
文件的单个仓库部分定义的值会覆盖 [main]
部分中设置的值。
10.1. YUM 存储库选项
/etc/yum.conf
配置文件包含带有方括号中的存储库 ID 的存储库部分([ <repository_ID> ]
)。您可以使用这些部分来定义独立的 YUM 存储库。
存储库 ID 必须是唯一的。
有关可用存储库 ID 选项的完整列表,请查看系统上 dnf.conf (5)
手册页中的 [ <repository_ID> ] OPTIONS
部分。
10.2. 添加一个 YUM 存储库
您可以通过在 /etc/yum.repos.d/
目录中的 .repo
文件中定义 YUM 存储库。
流程
在您的系统中添加软件仓库:
# yum-config-manager --add-repo <repository_URL>
请注意,此命令添加的存储库默认被启用。
查看并(可选)更新上一命令在
/etc/yum.repos.d/ <repository_URL> .repo 文件中创建的
存储库设置:# cat /etc/yum.repos.d/<repository_URL>.repo
从基于证书的 Content Delivery Network
(CDN)以外的未验证或不信任的源获取并安装软件包具有潜在的安全风险,并可能导致安全性、稳定性、兼容性和可维护性问题。
10.3. 启用一个 YUM 存储库
在系统中添加了 YUM 存储库后,启用它以确保安装和更新。
流程
启用存储库:
# yum-config-manager --enable <repository_id>
10.4. 禁用一个 YUM 存储库
要防止特定软件包安装或更新,您可以禁用包含这些软件包的 YUM 存储库。
流程
禁用软件仓库:
# yum-config-manager --disable <repository_id>
第 11 章 管理 Application Stream 内容的版本
AppStream 仓库的内容可以在多个版本中提供,对应于模块流。例如,您可以安装系统上已安装的模块的不同版本。
11.1. 模块依赖关系和流更改
传统上,提供内容的软件包依赖于其他软件包,并且通常指定所需的依赖项版本。对于模块中包含的软件包,此机制也会应用这个机制,但将软件包及其特定版本分组到模块和流中可以进一步的限制。另外,模块流可以声明与其他模块流的依赖关系,独立于其包含的软件包并提供它们。
在使用软件包或模块操作后,所有底层已安装软件包的所有依赖项树都必须满足软件包声明的所有条件。另外,必须满足所有模块流依赖项。例如,禁用模块流可能需要禁用其他模块流。不会自动删除任何软件包。
请注意,以下操作可能导致后续的自动操作:
- 启用模块流可能导致启用其它模块流。
- 安装模块流配置文件或从流安装软件包可能导致启用其它模块流,并安装其它软件包。
- 删除软件包可能导致删除其他软件包。如果模块提供了这些软件包,则模块流仍然启用,以准备进一步安装,即使这些流中没有安装这些软件包。这会镜像未使用的 YUM 存储库的行为。
在切换到不同流之前从流中删除安装的所有软件包可防止系统达到这样一种状态,即软件包可以在没有提供它们的存储库或流的情况下安装。
11.2. 模块化和非模块化依赖项的交互
模块依赖关系 是常规 RPM 依赖项之上的额外层。模块依赖关系与存储库间可能存在的依赖关系的行为相似。这意味着安装不同的软件包需要同时解析 RPM 依赖项和模块依赖关系。
系统将始终保留模块和流选择,除非明确指示要更改它们。模块软件包将接收目前启用的模块流中包含的提供此软件包的更新,但不会升级到另一流中包含的版本。
11.3. 重置模块流
重置模块是一种操作,它将此模块返回到其初始状态,既没有启用也没有禁用。如果模块有一个配置的默认流,则此流会因为重置模块而变为活动状态。
重置模块非常有用,例如,如果您希望只从模块中提取 RPM 内容而不启用该模块。在启用模块并提取其内容后,您可以使用 yum module reset
命令,将此模块重置为其初始状态。
流程
重置模块状态:
# yum module reset <module_name>
模块返回到初始状态。已启用的流和安装的配置集的信息会被清除,但没有删除安装的内容。
11.4. 禁用一个模块的所有流
具有默认流的模块始终会激活一个流。如果要使模块的所有模块流中的内容无法访问,您可以禁用整个模块。
先决条件
- 您了解了 活动模块流的概念。
流程
禁用模块:
# yum module disable <module_name>
使用您要禁用的模块的名称替换 module-name。
yum
命令要求确认,然后禁用模块及其所有流。所有模块流都不再活跃。没有安装的内容被删除。
11.5. 切换到更新的流
当您切换到后期模块流时,所有对应的软件包都被后期版本替代。
备份您的数据,并按照特定于组件的迁移说明进行操作。
或者,您可以删除从当前流安装的所有模块内容,重置模块 ???,并安装新流。
先决条件
- 这个系统已被完全更新。
- 在系统中安装的软件包都比该程序库中可用软件包更新。
流程
确定您的系统是否已准备好切换到更新的流:
# yum distro-sync
重要这个命令必须完成
Nothing to do.Complete!
。如果它没有提出更改而要求确认,请仔细检查这些更改,并考虑是否要继续。如有必要,重复运行YUM distro-sync
命令。另外,您可以拒绝推荐的修改,然后手动将您的系统改为命令返回Nothing to do.Complete!
。通过在切换流之前检查
yum distro-sync
结果,您可以防止更改与流切换不相关的系统,因为此流程的最后一步也需要同样的命令。将活动流更改为后续流:
# yum module reset <module-name> # yum module enable <module-name>:<new-stream>
同步安装的软件包以在流间进行更改:
# yum distro-sync
如果此操作建议更改流外的内容,请仔细检查它们。
注意-
如果某些安装的软件包依赖于之前的流,且后续流中没有兼容版本,YUM 会报告依赖关系冲突。在这种情况下,使用-
allowerasing
选项删除这些软件包,因为它们因为缺少依赖项而无法与后续流一起安装。 -
在切换
Perl
模块时,您必须始终使用--allowerasing
选项,因为基本 RHEL 8 安装中的某些软件包依赖于Perl 5.26
。 您需要为解释语言重新安装二进制扩展,这些语言通常在启用新流后使用 C 或 C++ 编写。例如,使用以下命令安装软件包:
-
ruby
模块中的gem
命令。如需更多信息,请参阅如何在 RHEL 8 中切换 Ruby 流。 -
nodejs
模块中的npm
命令 -
perl
模块中的cpan
命令 -
php
模块中的pecl
命令
-
-
如果某些安装的软件包依赖于之前的流,且后续流中没有兼容版本,YUM 会报告依赖关系冲突。在这种情况下,使用-
11.6. 定义自定义默认模块流和配置文件
默认情况下,YUM 实用程序使用包含模块的存储库中定义的默认模块流。您可以在 /etc/dnf/modules.defaults.d/
目录中配置默认流和默认模块配置集。
始终考虑模块流的 生命周期。
先决条件
- 您了解了 活动模块流的概念。
流程
显示可用的流及其配置集:
# yum module list <module_name>
例如,要列出
postgresql
模块的可用流及其配置集,请输入:# yum module list postgresql (…) Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) Name Stream Profiles Summary postgresql 9.6 client, server [d] PostgreSQL server and client module postgresql 10 [d] client, server [d] PostgreSQL server and client module postgresql 12 client, server [d] PostgreSQL server and client module postgresql 13 client, server [d] PostgreSQL server and client module postgresql 15 client, server [d] PostgreSQL server and client module … Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
在
/etc/dnf/modules.defaults.d/
drop-in 目录中创建YAML
配置文件。例如,使用以下内容创建
/etc/dnf/modules.defaults.d/postgresql.yaml
文件,将13
定义为 postgresql 模块的默认流,server
作为postgresql
模块的默认配置集:--- document: modulemd-defaults version: 1 data: module: postgresql stream: "13" profiles: 13: [server]
验证
验证默认流和配置集设置:
# yum module list postgresql (…) Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs) Name Stream Profiles Summary postgresql 9.6 client, server PostgreSQL server and client module postgresql 10 client, server PostgreSQL server and client module postgresql 12 client, server PostgreSQL server and client module postgresql 13 [d] client, server [d] PostgreSQL server and client module postgresql 15 client, server PostgreSQL server and client module … Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
第 12 章 YUM 命令列表
在以下部分中,检查用于列出、安装和删除 Red Hat Enterprise Linux 8 的内容的 YUM 命令。
12.1. 在 RHEL 8 中列出内容的命令
以下是在 Red Hat Enterprise Linux 8 中查找内容及其详情的常用 YUM 命令:
命令 | 描述 |
---|---|
| 使用与软件包相关的术语搜索软件包。 |
| 为所选软件包及其版本搜索已启用的 YUM 存储库。 |
| 列出所有已安装的和可用的软件包信息。 |
| 列出系统上安装的所有软件包。 |
| 列出用于安装的所有已启用的存储库中的所有软件包。 |
| 列出系统上所有启用的存储库。 |
| 列出系统上所有禁用的存储库。 |
| 列出启用和禁用的存储库。 |
| 列出有关存储库的其他信息。 |
| 显示可用软件包的详细信息。 |
| 显示系统上安装的软件包的详情。 |
| 列出模块及其当前状态。 |
| 显示模块的详细信息。 |
| 显示模块的当前状态。 |
| 显示与所选模块的可用配置文件关联的软件包。 |
| 使用指定流显示与模块的可用配置为念关联的软件包。 |
| 确定哪些模块、流和配置集提供软件包。 请注意,如果软件包在任何模块外可用,这个命令的输出为空。 |
| 查看已安装的和可用的组的数量。 |
| 列出所有已安装的和可用的组。 |
| 列出特定组中包含的强制的和可选的软件包。 |
12.2. 在 RHEL 8 中安装内容的命令
以下是在 Red Hat Enterprise Linux 8 中安装内容的常用 YUM 命令:
命令 | 描述 |
---|---|
| 安装软件包。
如果软件包由模块流提供,则 |
| 同时安装多个软件包及其依赖项。 |
| 在 multilib 系统(AMD64、Intel 64 机器)上安装软件包时,通过将其追加到软件包名称来指定软件包的架构。 |
| 通过将二进制路径用作参数来安装二进制文件。 |
| 从本地目录安装之前下载的软件包。 |
| 使用软件包 URL 安装远程软件包。 |
| 使用特定流启用模块。 请注意,运行这个命令不会安装任何 RPM 软件包。 |
| 从特定的模块流安装默认配置集。 请注意,运行这个命令还会启用指定的流。 |
| 使用特定流安装所选配置文件。 |
| 按组名称安装软件包组。 |
| 按 groupID 安装软件包组。 |
| 使用其确切的名称安装软件包。 |
| 使用其确切的名称和架构安装软件包。 |
| 使用其确切的名称、epoch、版本、发行和架构安装软件包。 |
12.3. 在 RHEL 8 中删除内容的命令
以下是删除 Red Hat Enterprise Linux 8 中内容的常用 YUM 命令:
命令 | 描述 |
---|---|
| 删除特定软件包以及所有依赖的软件包。 |
| 同时删除多个软件包及其未使用的依赖项。 |
| 按组名称删除软件包组。 |
| 按 groupID 删除软件包组。 |
| 从指定的流中删除所有软件包。 请注意,运行此命令可从系统中删除关键软件包。 |
| 从安装的配置文件删除软件包。 |
| 从指定流中的所有安装的配置文件删除软件包。 |
| 将模块重置为初始状态。 请注意,运行此命令不会从指定的模块中删除软件包。 |
| 禁用一个模块及其所有流。 请注意,运行此命令不会从指定的模块中删除软件包。 |
| 使用其确切的名称删除软件包。 |
| 使用其确切的名称和架构来删除软件包。 |
| 使用其确切的名称、epoch、版本、发行和架构来删除软件包。 |