使用 DNF 工具管理软件
大约 31 分钟
使用 DNF 工具管理软件
来源:官方文档 原始多页入口:使用 DNF 工具管理软件 内容规模:约 17,935 字符,46 个章节标题,58 个命令/代码块,12 条提示框
阅读提要
- 副标题:使用 DNF 软件管理工具管理 RPM 存储库中的内容
- 摘要:使用 DNF 工具查找、安装和使用通过 RPM 存储库分发的内容。
- 主要章节:使用 DNF 软件管理工具管理 RPM 存储库中的内容;对红帽文档提供反馈;第 1 章 RHEL 10 中内容的分发;第 2 章 配置 DNF;第 3 章 搜索 RHEL 内容;第 4 章 安装 RHEL 内容;第 5 章 更新 RHEL 内容;第 6 章 在 RHEL 中自动化软件更新;第 7 章 删除 RHEL 内容;第 8 章 处理软件包管理历史记录;第 9 章 管理自定义软件存储库;附录 A. DNF 命令列表
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
使用 DNF 软件管理工具管理 RPM 存储库中的内容
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 RHEL 10 中内容的分发
- 要点:在 Red Hat Enterprise Linux (RHEL) 10 中,软件通过不同的软件仓库发布。您可以通过这些软件仓库访问应用程序和核心组件,以确保您的系统保持稳定且最新状态。
1.1. 软件仓库
- 要点:Red Hat Enterprise Linux (RHEL) 10 软件仓库提供稳定和受支持的环境所需的特定软件、操作系统功能和各种系统组件。
- 要点:Red Hat Enterprise Linux 通过不同的软件仓库发布内容,如 BaseOS、AppStream、CodeReady Linux Builder 和 Supplementary。另外,Red Hat Enterprise Linux 附加组件软件仓库(如高可用性)中提供了特定的内容。
- 列表:软件包清单
- 注意:重要 RHEL 需要 BaseOS 和 AppStream 内容集,它们在所有 RHEL 订阅中都提供。
1.2. 应用程序流
- 要点:红帽以 Application Streams 的形式提供多个用户空间组件版本,它们比核心操作系统软件包更新频率更高。这为自定义 RHEL 提供了更大的灵活性,而不影响平台或特定部署的底层稳定性。
- 要点:提供以下格式的应用程序流:
- 列表:RPM 格式
- 列表:Software Collections
- 列表:Red Hat Enterprise Linux 10: 应用程序兼容性指南
- 列表:软件包清单
- 列表:Red Hat Enterprise Linux Application Streams Life Cycle
- 注意:重要 每个 Application Stream 都有自己的生命周期,其生命周期可能与 Red Hat Enterprise Linux 10 的生命周期相同或更短。 决定您要安装的 Application Stream 版本,并首先查看 Red Hat Enterprise Linux Application Stream 生命周期。
第 2 章 配置 DNF
- 要点:通过为 DNF 工具配置全局设置和存储库选项,在您的 Red Hat Enterprise Linux (RHEL) 10 系统上自定义软件管理。您可以调整这些参数以优化软件包下载并确保您的环境满足特定的操作要求。
- 要点:DNF 及相关工具的配置保存在 /etc/dnf/dnf.conf 文件的 [main] 部分中。
2.1. 查看当前的 DNF 配置
- 要点:通过查看活跃的 DNF 配置来验证您的软件管理设置。查看这些参数可确保您的系统使用正确的全局和存储库设置来有效地管理软件包。
- 要点:/etc/dnf/dnf.conf 文件的 [main] 部分只包含您明确设置的设置。但是,您可以在 [main] 部分中显示所有设置,包括未明确设置的设置,因此使用它们的默认值。
- 列表:显示全局 DNF 配置: # dnf config-manager --dump
- 命令/配置摘录:
# dnf config-manager --dump2.2. 设置 DNF 主选项
- 要点:要控制 DNF 的运行方式,请在 /etc/dnf/dnf.conf 文件的 [main] 部分中配置键值对。
- 要点:流程
- 列表:编辑 /etc/dnf/dnf.conf 文件。
- 列表:根据您的要求更新 [main] 部分。
- 列表:保存更改。
2.3. 启用和禁用 DNF 插件
- 要点:通过管理其插件来扩展 DNF 工具的功能。通过启用或禁用插件,您可以激活或删除特定功能,使其与环境的操作要求保持一致。
- 要点:在 DNF 工具中,会默认载入插件。但是,您可以影响 DNF 加载的插件。
- 列表:使用以下方法之一影响 DNF 如何使用插件: 要在全局范围内启用或禁用 DNF 插件的加载,请将 plugins 参数添加到 /etc/dnf/dnf.conf 文件的 [main] 部分。 设置 plugins=1 (默认)以启用载入所有 DNF 插件。 将 plugins=0 设置为禁用所有 DNF 插件的加载。 要禁用特定的插件,请将 enabled=False 添加到 /etc/dnf/plugins/ <plug-in_name> .conf 文件中的 [main] 部分: [main] enabled=False 要禁用特定命令的所有 DNF 插件,请在命令中附加 the- noplugins 选项。例如,要为单…
- 列表:要在全局范围内启用或禁用 DNF 插件的加载,请将 plugins 参数添加到 /etc/dnf/dnf.conf 文件的 [main] 部分。 设置 plugins=1 (默认)以启用载入所有 DNF 插件。 将 plugins=0 设置为禁用所有 DNF 插件的加载。
- 列表:设置 plugins=1 (默认)以启用载入所有 DNF 插件。
- 列表:将 plugins=0 设置为禁用所有 DNF 插件的加载。
- 列表:要禁用特定的插件,请将 enabled=False 添加到 /etc/dnf/plugins/ <plug-in_name> .conf 文件中的 [main] 部分: [main] enabled=False
- 列表:要禁用特定命令的所有 DNF 插件,请在命令中附加 the- noplugins 选项。例如,要为单个 update 命令禁用 DNF 插件,请输入: # dnf --noplugins update
- 命令/配置摘录:
[main] enabled=False
# dnf --noplugins update- 注意:警告 禁用用于诊断潜在问题的所有插件。DNF 需要某些插件,如 product-id 和 subscription-manager,并且禁用它们会导致 Red Hat Enterprise Linux 无法从 Content Delivery Network (CDN)安装或更新软件。
2.4. 从 DNF 操作中排除软件包
- 要点:要防止特定软件被安装或更新,请使用 excludepkgs 选项从 DNF 操作中排除软件包。
- 要点:您可以使用 excludepkgs 选项配置 DNF ,来从任何 DNF 操作中排除软件包。您可以在 /etc/dnf/dnf.conf DNF 配置文件的 [main] 或 repository 部分中定义 excludepkgs 选项。
- 列表:通过在 /etc/dnf/dnf.conf 文件中添加以下行,来从 DNF 操作中排除软件包: excludepkgs=<package_name_1>,<package_name_2> ...
- 列表:在 DNF 输入中指定全局表达式
- 命令/配置摘录:
excludepkgs=<package_name_1>,<package_name_2> ...- 注意:注意 您可以使用 --disableexcludes 选项,临时禁止从操作中排除配置的软件包。
第 3 章 搜索 RHEL 内容
- 要点:使用 DNF 工具搜索并检查 Red Hat Enterprise Linux (RHEL) 10 AppStream 和 BaseOS 软件仓库中的内容。例如,您可以识别特定的软件包或软件包组,以确保安装环境稳定性和安全性所需的具体组件。
3.1. 搜索软件包
- 要点:使用 DNF 工具搜索软件包,为您的 Red Hat Enterprise Linux (RHEL) 10 系统识别并找到特定软件。您可以按名称或概述进行搜索,以确保找到并安装环境所需的正确组件。
- 要点:流程
- 列表:根据您的场景,使用以下选项之一来搜索存储库: 要在软件包的名称或摘要中搜索术语,请输入: $ dnf search <term> 要在软件包的名称、概述或描述中搜索术语,请输入: $ dnf search --all <term> 请注意,在描述中使用 --all 选项进行额外搜索比普通搜索操作要慢。 要搜索软件包名称,并在输出中列出软件包名称及其版本,请输入: $ dnf repoquery <package_name> 要搜索哪个软件包提供了文件,请指定文件名或文件的路径: $ dnf provides <file_name>
- 列表:要在软件包的名称或摘要中搜索术语,请输入: $ dnf search <term>
- 列表:要在软件包的名称、概述或描述中搜索术语,请输入: $ dnf search --all <term> 请注意,在描述中使用 --all 选项进行额外搜索比普通搜索操作要慢。
- 列表:要搜索软件包名称,并在输出中列出软件包名称及其版本,请输入: $ dnf repoquery <package_name>
- 列表:要搜索哪个软件包提供了文件,请指定文件名或文件的路径: $ dnf provides <file_name>
- 命令/配置摘录:
$ dnf search <term>
$ dnf search --all <term>3.2. 列出软件包
- 要点:使用 DNF 工具列出 Red Hat Enterprise Linux (RHEL) 10 系统上的可用或安装的软件包。您可以使用这些信息确认当前版本并确定可用的安装内容,以确保您的环境保持一致且最新。
- 要点:流程
- 列表:列出所有可用软件包的最新版本,包括构架、版本号以及从其中安装的存储库: $ dnf list --all ... postgresql.x86_64 16.4-1.el10 rhel-AppStream postgresql-contrib.x86_64 16.4-1.el10 rhel-AppStream postgresql-docs.x86_64 16.4-1.el10 rhel-AppStream postgresql-jdbc.noarch 42.7.1-6.el10 rhel-AppStream ... 存储库前面的 @ 符号表示此行中的软件包当前已安装。 另外,要显示所有可用的软件包,包括版本号和架构,请输入: $ …
- 列表:使用 --installed 仅列出已安装的软件包。
- 列表:使用 --available 列出所有可用软件包。
- 列表:使用 --upgrades 列出新版本提供的软件包。
- 列表:在 DNF 输入中指定全局表达式
- 命令/配置摘录:
$ dnf list --all
... postgresql.x86_64 16.4-1.el10 rhel-AppStream postgresql-contrib.x86_64 16.4-1.el10 rhel-AppStream postgresql-docs.x86_64 16.4-1.el10 rhel-AppStream postgresql-jdbc.noarch 42.7.1-6.el10 rhel-AppStream ...3.3. 显示软件包信息
- 要点:使用 DNF 工具显示软件包信息,查看 Red Hat Enterprise Linux (RHEL) 10 中特定软件的详细元数据。在安装前,您可以使用这些信息验证软件包是否满足您的系统要求和安全标准。
- 要点:您可以显示与软件包相关的以下信息类型:
- 列表:版本
- 列表:发布
- 列表:架构
- 列表:软件包大小
- 列表:描述
- 列表:显示一个或多个可用软件包的信息: $ dnf info <package_name> 这个命令显示当前安装的软件包的信息,如果有的话,显示存储库中的较新版本。另外,使用以下命令显示存储库中具有指定名称的所有软件包的信息: $ dnf repoquery --info <package_name>
- 命令/配置摘录:
$ dnf info <package_name>
$ dnf repoquery --info <package_name>3.4. 列出软件包组和它们提供的软件包
- 要点:使用 DNF 工具列出 Red Hat Enterprise Linux (RHEL) 10 系统的可用软件包组及其内容。您可以列出软件包组,以快速验证并安装特殊环境所需的所有工具。
- 要点:流程
- 列表:列出已安装的和可用的组: $ dnf group list 请注意,您可以通过在 dnf group list 命令中附加 --installed 和 --available 选项来过滤结果。通过使用 --hidden 选项,您可以在输出中显示隐藏的组。
- 列表:列出特定组中包含的强制的、可选的和默认的软件包: $ dnf group info "<group_name>"
- 列表:可选:查看已安装和可用的组的数量: $ dnf group summary
- 列表:在 DNF 输入中指定全局表达式
- 命令/配置摘录:
$ dnf group list
$ dnf group info "<group_name>"3.5. 列出软件仓库
- 要点:使用 DNF 工具列出 Red Hat Enterprise Linux (RHEL) 10 系统上启用和禁用的软件仓库。您可以查看存储库来识别可用内容并对存储库可用性进行故障排除,以确保您的环境可以访问所需的软件更新。
- 要点:流程
- 列表:列出系统上所有启用的存储库: $ dnf repolist 要只显示某些存储库,请在命令中附加以下选项之一: 附加 --disabled 只列出禁用的存储库。 附加 --all 列出启用和禁用的存储库。
- 列表:附加 --disabled 只列出禁用的存储库。
- 列表:附加 --all 列出启用和禁用的存储库。
- 列表:可选:列出存储库的额外信息: $ dnf repoinfo <repository_name>
- 列表:在 DNF 输入中指定全局表达式
- 命令/配置摘录:
$ dnf repolist
$ dnf repoinfo <repository_name>3.6. 在 DNF 输入中指定 glob 表达式
- 要点:通过将一个或多个 glob 表达式附加为参数,在 Red Hat Enterprise Linux (RHEL) 10 系统上写入更表达的 DNF 命令。
- 要点:许多 DNF 命令接受 glob 表达式来代替软件包名称、文件路径和其他参数。glob 表达式是包含一个或多个通配符字符的字符字符串。通过使用 glob 表达式,您可以有效地搜索大型相关软件组,并匹配路径,而无需对每个项目完全匹配。
- 列表:如果您在 dnf 命令中使用全局表达式,请使用以下方法之一: 将整个全局表达式用单引号或双引号括起来: # dnf provides "/<file_name>" 请注意,如果完整路径未知,您必需在 <file_name> 前加上/用于绝对路径或加上/使用通配符。 在它们前面使用反斜杠()字符转义通配符字符: # dnf provides */<file_name>
- 列表:将整个全局表达式用单引号或双引号括起来: # dnf provides "/<file_name>" 请注意,如果完整路径未知,您必需在 <file_name> 前加上/用于绝对路径或加上/使用通配符。
- 列表:在它们前面使用反斜杠()字符转义通配符字符: # dnf provides */<file_name>
- 命令/配置摘录:
# dnf provides "*/<file_name>"
# dnf provides \*/<file_name>3.7. 其他资源
- 列表:列出 RHEL 中内容的命令
第 4 章 安装 RHEL 内容
- 要点:使用 DNF 工具在 Red Hat Enterprise Linux (RHEL) 10 系统中手动安装软件包和软件包组,它们不是默认安装的一部分。
4.1. 安装软件包
- 要点:使用 DNF 工具在 Red Hat Enterprise Linux 10 (RHEL)系统上手动安装不是默认安装的软件。在软件包安装过程中,DNF 会自动解析并安装软件包依赖项。
- 要点:在软件包安装过程中,DNF 会自动解析并安装软件包依赖项。
- 列表:使用以下方法之一安装软件包: 要从存储库安装软件包,请输入: # dnf install <package_name_1> <package_name_2> ... 如果您在支持多个构架的系统上安装软件包,如 i686 和 x86_64,您可以通过将其附加到软件包名称来指定软件包的架构: # dnf install <package_name>.<architecture> 如果您只知道软件包提供的文件的路径,但知道软件包名称,您可以使用此路径安装相应的软件包: # dnf install <path_to_file> 要安装本地 RPM 文件,请输入: # dnf install <path_to_RPM_file> 如果软件包…
- 列表:要从存储库安装软件包,请输入: # dnf install <package_name_1> <package_name_2> ... 如果您在支持多个构架的系统上安装软件包,如 i686 和 x86_64,您可以通过将其附加到软件包名称来指定软件包的架构: # dnf install <package_name>.<architecture>
- 列表:如果您只知道软件包提供的文件的路径,但知道软件包名称,您可以使用此路径安装相应的软件包: # dnf install <path_to_file>
- 列表:要安装本地 RPM 文件,请输入: # dnf install <path_to_RPM_file> 如果软件包有依赖项,还要指定到这些 RPM 文件的路径。否则,DNF 会从存储库下载依赖项,或者如果存储库中没有,则下载失败。
- 列表:搜索 RHEL 内容
- 命令/配置摘录:
# dnf install <package_name_1> <package_name_2> ...
# dnf install <package_name>.<architecture>4.2. 安装软件包组
- 要点:软件包组捆绑多个软件包。使用 DNF 工具,在单个步骤中安装分配给 Red Hat Enterprise Linux (RHEL) 10 系统的所有软件包。
- 要点:先决条件
- 列表:您知道您要安装的组的名称或 ID。如需更多信息,请参阅 列出软件包组及其提供的软件包。
- 列表:安装软件包组: # dnf group install <group_name_or_ID>
- 命令/配置摘录:
# dnf group install <group_name_or_ID>4.3. 其他资源
- 列表:在 RHEL 中安装内容的命令
第 5 章 更新 RHEL 内容
- 要点:要维护 Red Hat Enterprise Linux (RHEL) 10 系统的安全性和性能,请使用 DNF 工具应用软件更新。定期安装软件包和安全更新可确保您的环境保持稳定、最新且受到已知漏洞的保护。
- 要点:使用 DNF 工具,您可以列出需要更新的软件包,并选择同时更新单个软件包、多个软件包或所有软件包。
- 注意:提示 您可以在 Red Hat Enterprise Linux web 控制台中管理软件更新,它为 DNF 提供图形界面。
5.1. 检查更新
- 要点:要确保您的 Red Hat Enterprise Linux (RHEL) 10 系统保持安全且高效,请使用 DNF 工具检查可用的软件更新。通过识别待处理的更新,您可以规划维护窗口,并在将更改应用到环境前确定安全修复的优先级。
- 要点:流程
- 列表:检查已安装的软件包的可用更新: # dnf check-update 输出返回有可用更新的软件包及其依赖项列表。
- 命令/配置摘录:
# dnf check-update5.2. 更新软件包
- 要点:要维护 Red Hat Enterprise Linux (RHEL) 10 系统的安全性和稳定性,请使用 DNF 工具安装最新的软件更新。定期应用软件包更新可确保您的环境具有必要的安全补丁和程序错误修复。
- 要点:您可以使用 DNF 来一次更新一个软件包、软件包组或所有软件包及其依赖项。如果要更新的任何软件包有依赖项,DNF 也会更新这些依赖项。
- 列表:根据您的场景,使用以下选项之一应用更新: 要更新所有软件包及其依赖项,请输入: # dnf upgrade 要更新单个软件包,请输入: # dnf upgrade <package_name> 要只从特定软件包组更新软件包,请输入: # dnf group upgrade <group_name>
- 列表:要更新所有软件包及其依赖项,请输入: # dnf upgrade
- 列表:要更新单个软件包,请输入: # dnf upgrade <package_name>
- 列表:要只从特定软件包组更新软件包,请输入: # dnf group upgrade <group_name>
- 命令/配置摘录:
# dnf upgrade
# dnf upgrade <package_name>- 注意:重要 当对内核应用更新时,无论是否使用了 dnf update 或 dnf install 命令,dnf 总会安装一个新内核。请注意,这只适用于使用 installonlypkgs DNF 配置选项识别的软件包。这些软件包包括内核、 kernel -core 和 kernel-modules 软件包。
- 注意:重要 如果您在 BIOS 或 IBM Power 系统上升级了 GRUB 引导装载程序软件包,请重新安装 GRUB。请参阅 重新安装 GRUB。
5.3. 更新与安全相关的软件包
- 要点:通过使用 DNF 工具安装与安全相关的更新,保护您的 Red Hat Enterprise Linux (RHEL) 10 系统免受已知和新发现的威胁和漏洞。
- 要点:流程
- 列表:根据您的场景,使用以下选项之一应用更新: 要升级到有安全勘误的最新的可用软件包,请输入: # dnf upgrade --security 要升级到最后一个安全勘误软件包,请输入: # dnf upgrade-minimal --security
- 列表:要升级到有安全勘误的最新的可用软件包,请输入: # dnf upgrade --security
- 列表:要升级到最后一个安全勘误软件包,请输入: # dnf upgrade-minimal --security
- 列表:管理及监控安全更新
- 命令/配置摘录:
# dnf upgrade --security
# dnf upgrade-minimal --security- 注意:重要 如果您在 BIOS 或 IBM Power 系统上升级了 GRUB 引导装载程序软件包,请重新安装 GRUB。请参阅 重新安装 GRUB。
5.4. 其他资源
- 列表:在 RHEL web 控制台中管理系统
第 6 章 在 RHEL 中自动化软件更新
- 要点:通过使用 DNF Automatic 工具自动化软件更新,确保您的 Red Hat Enterprise Linux (RHEL) 10 系统保持安全且最新。自动安装安全补丁和程序错误修复可帮助您保持环境稳定性,同时减少手动系统维护工作。
- 要点:DNF Automatic 是 DNF 的替代命令行界面,它适用于使用 systemd 计时器、cron 作业和其他此类工具自动和常规执行。
- 列表:Exit
- 列表:下载更新的软件包
- 列表:下载并应用更新
6.1. 安装 DNF Automatic
- 要点:通过安装 DNF Automatic 工具,在 Red Hat Enterprise Linux (RHEL) 10 系统上启用自动软件更新。
- 要点:通过使用 DNF Automatic 工具,您可以确保您的环境保持安全并最新补丁,同时显著降低手动系统维护所需的时间和工作。
- 列表:安装 dnf-automatic 软件包: # dnf install dnf-automatic
- 列表:通过确认 dnf-automatic 软件包是否存在,来验证安装是否成功: # rpm -qi dnf-automatic
- 命令/配置摘录:
# dnf install dnf-automatic
# rpm -qi dnf-automatic6.2. DNF Automatic 配置文件
- 要点:DNF Automatic 配置文件定义了 Red Hat Enterprise Linux (RHEL) 10 中自动软件更新的参数。通过管理这些设置,您可以自定义更新行为,以最少的手动工作来保持系统安全性。
- 要点:默认情况下,DNF Automatic 使用 /etc/dnf/automatic.conf 作为其配置文件来定义其行为。配置文件有以下主题部分:
- 列表:[commands] 设置 DNF Automatic 的操作模式。 警告 [commands] 部分中操作模式的设置会被 systemd 计时器单元用于除 dnf-automatic.timer 之外的所有计时器单元使用的设置覆盖。
- 列表:[emitters] 定义如何报告 DNF Automatic 的结果。
- 列表:[command] 定义命令发出器配置。
- 列表:[command_email] 为用来发送电子邮件的外部命令提供电子邮件发布程序配置。
- 列表:[email] 提供电子邮件发布程序配置。
- 列表:[base] 覆盖 DNF 的主要配置文件中的设置。
- 注意:警告 [commands] 部分中操作模式的设置会被 systemd 计时器单元用于除 dnf-automatic.timer 之外的所有计时器单元使用的设置覆盖。
6.3. 启用 DNF Automatic
- 要点:通过激活 DNF Automatic 计时器单元,在 Red Hat Enterprise Linux (RHEL) 10 上启用自动软件更新。通过启用这些单元,您可以确保您的系统保持一致保护和最新状态,而无需手动工作。
- 要点:要运行 DNF Automatic 一次,您必须启动一个 systemd 计时器单元。但是,如果要定期运行 DNF Automatic,您必须启用计时器单元。
- 列表:dnf-automatic-download.timer: 下载可用的更新。
- 列表:dnf-automatic-install.timer: 下载并安装可用的更新。
- 列表:dnf-automatic-notifyonly.timer: 报告可用的更新。
- 列表:dnf-automatic.timer :下载、下载并安装或报告可用的更新。
- 列表:您可以通过修改 /etc/dnf/automatic.conf 配置文件来指定 DNF Automatic 的行为。
- 列表:要立即启用并执行 systemd 计时器单元,请输入: # systemctl enable --now <timer_name> 如果想只启用计时器,而不立即执行它,请省略 --now 选项。
- 命令/配置摘录:
# systemctl enable --now <timer_name>
# systemctl status <systemd_timer_unit>6.4. dnf-automatic 软件包中包含的 systemd 计时器单元的概述
- 要点:dnf-automatic 软件包中的 systemd 计时器单元为 Red Hat Enterprise Linux (RHEL) 10 中自动软件更新提供调度框架。了解这些单元可帮助您自定义更新检查和补丁应用程序的时间和频率。
- 要点:systemd 定时器单元具有优先权,并在下载和应用更新时覆盖 /etc/dnf/automatic.conf 配置文件中的设置。例如,如果您在 /etc/dnf/automatic.conf 配置文件中设置了 download_updates = yes,但您已激活了 dnf-automatic-notifyonly.timer 单元,DNF 不会下载软件包。
- 表格样本(共 5 行):
- 计时器单元 | 功能 | 覆盖 /etc/dnf/automatic.conf 文件的 [commands] 部分中的 apply_updates 和 download_updates 设置?
- dnf-automatic-download.timer | 下载软件包以便进行更新。 这个计时器单元没有安装更新的软件包。要执行安装,您必须运行 dnf update 命令。 | 是
- dnf-automatic-install.timer | 下载并安装更新的软件包。 | 是
- dnf-automatic-notifyonly.timer | 只下载存储库数据,以保持存储库缓存最新状态,并通知您是否有可用的更新。 这个计时器单元没有下载或安装更新的软件包。 | 是
第 7 章 删除 RHEL 内容
- 要点:要优化您的环境,请使用 DNF 工具从 Red Hat Enterprise Linux (RHEL) 10 中删除不必要的软件。卸载未使用的软件包和功能组可确保您的系统保持干净、高效和安全。
7.1. 删除安装的软件包
- 要点:要优化 Red Hat Enterprise Linux (RHEL) 10 系统,请使用 DNF 工具删除不必要的软件包。卸载未使用的软件可确保您的环境保持安全且精简。
- 要点:您可以使用 DNF 删除安装在系统上的一个软件包或多个软件包。如果您要删除的任何软件包都有未使用的依赖项,DNF 也会卸载这些依赖项。
- 列表:删除特定软件包: # dnf remove <package_name_1> <package_name_2> ...
- 命令/配置摘录:
# dnf remove <package_name_1> <package_name_2> ...7.2. 删除软件包组
- 要点:要优化 Red Hat Enterprise Linux (RHEL) 10 系统,请使用 DNF 工具删除软件包组来卸载相关软件的集合。
- 要点:软件包组捆绑多个软件包。您可以使用软件包组在单个步骤中删除分配给组的所有软件包。
- 列表:您知道您要删除的组的名称或 ID。如需更多信息,请参阅 列出软件包组及其提供的软件包。
- 列表:按组名称或组 ID 删除软件包组: # dnf group remove <group_name> <group_ID>
- 命令/配置摘录:
# dnf group remove <group_name> <group_ID>7.3. 其他资源
- 列表:删除 RHEL 中内容的命令
第 8 章 处理软件包管理历史记录
- 要点:使用 DNF 历史记录数据库跟踪和管理 Red Hat Enterprise Linux (RHEL) 10 系统上的软件更改。通过检查或恢复过去的事务,您可以从意外配置更改快速恢复。
- 要点:您可以使用 dnf history 命令对软件包管理历史记录执行各种操作。您可以查看与 DNF 事务相关的以下信息:
- 列表:交易时间表.
- 列表:交易发生的日期和时间。
- 列表:受交易影响的软件包的数量。
- 列表:交易是否成功或被中止。
- 列表:RPM 数据库是否在交易之间更改了。
8.1. 列出 DNF 交易
- 要点:要审核软件更改或识别特定的软件包操作,请使用 DNF 工具列出 Red Hat Enterprise Linux (RHEL) 10 上的软件包管理历史记录。查看这些事务可确保您有明确的系统修改记录,以便进行维护和故障排除。
- 要点:通过使用 DNF 工具,您可以执行以下任务:
- 列表:列出最新的交易。
- 列表:列出对所选软件包的最新操作。
- 列表:显示特定交易的详细信息。
- 列表:根据您的场景,使用以下选项之一显示交易信息: 要显示所有最新的 DNF 事务列表,请输入: # dnf history 输出包含以下信息: Action (s) 列显示在交易期间执行了哪种操作类型,如 Install (I)、Upgrade (U)、删除(E)和其他操作。 Altered 列显示事务期间执行的操作数。操作数也可以后跟事务的结果。 有关 Action (s) 和 Altered 列的值的更多信息,请参阅 dnf (8) 手册页。 要显示对所选软件包的所有最新操作的列表,请输入: # dnf history list <package_name> 要显示特定交易的详情,请输入: # dnf history info <…
- 列表:要显示所有最新的 DNF 事务列表,请输入: # dnf history 输出包含以下信息: Action (s) 列显示在交易期间执行了哪种操作类型,如 Install (I)、Upgrade (U)、删除(E)和其他操作。 Altered 列显示事务期间执行的操作数。操作数也可以后跟事务的结果。 有关 Action (s) 和 Altered 列的值的更多信息,请参阅 dnf (8) 手册页。
- 列表:Action (s) 列显示在交易期间执行了哪种操作类型,如 Install (I)、Upgrade (U)、删除(E)和其他操作。
- 命令/配置摘录:
# dnf history
# dnf history list <package_name>8.2. 恢复 DNF 事务
- 要点:要撤消在 Red Hat Enterprise Linux (RHEL) 10 上 DNF 事务过程中执行的操作,请使用 DNF 工具恢复这些事务。
- 要点:通过恢复事务,您可以快速将系统恢复到以前的状态。例如,如果您使用 dnf install 命令安装多个软件包,您可以通过恢复安装事务来一次卸载这些软件包。
- 列表:使用 dnf history undo 命令恢复单个 DNF 交易。
- 列表:使用 dnf history rollback 命令恢复指定交易和最后一个交易之间执行的所有 DNF 交易。
- 注意:重要 不支持使用 dnf history undo 和 dnf history rollback 命令降级 RHEL 系统软件包到旧版本。这尤其涉及 selinux、selinux-policy-*、kernel 和 glibc 软件包,以及 glibc 的依赖项,如 gcc。因此,不建议将系统降级到次版本(例如,从 RHEL 10.1 升级到 RHEL 10.0),因为它可能会使系统处于不正确的状态。
8.2.1. 撤销单个 DNF 交易
- 要点:要撤消在 Red Hat Enterprise Linux (RHEL) 10 上的单个 DNF 事务过程中执行的操作,请使用 DNF 工具恢复这个事务。
- 要点:通过将环境恢复到软件包管理历史记录中的特定点,您可以从意外更改和错误中恢复。在 DNF 历史记录中恢复单个事务不会撤消或修改最新的事务。
- 列表:如果交易安装了一个新软件包,则 dnf history undo 会卸载该软件包。
- 列表:如果交易卸载了一个软件包,则 dnf history undo 会重新安装该软件包。
- 列表:如果旧的软件包可用,dnf history undo 命令还会尝试将所有更新的软件包降级到之前的版本。 注意 如果旧的软件包版本不可用,则使用 dnf history undo 命令降级会失败。
- 列表:确定您要恢复的事务的 ID: # dnf 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
- 列表:可选:通过显示其详情来验证您要恢复的事务: # dnf history info <transaction_ID>
- 列表:恢复事务: # dnf history undo <transaction_ID> 例如,如果要卸载之前安装的 unzip 软件包,请输入: # dnf history undo 12
- 命令/配置摘录:
# dnf 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- 注意:注意 如果旧的软件包版本不可用,则使用 dnf history undo 命令降级会失败。
8.2.2. 撤销多个 DNF 交易
- 要点:要撤消在 Red Hat Enterprise Linux (RHEL) 10 上 DNF 事务过程中执行的操作,请使用 DNF 工具恢复这些事务。通过将环境恢复到软件包管理历史记录中的特定点,您可以从意外更改和错误中恢复。
- 要点:您可以使用 dnf history rollback 命令恢复指定交易和最后一个交易之间执行的所有 DNF 交易。请注意,交易 ID 指定的交易保持不变。
- 列表:确定您要恢复到的状态的事务 ID: # dnf 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
- 列表:恢复指定的事务: # dnf history rollback <transaction_ID> 例如,要恢复到 wget 和 unzip 软件包安装前的状态,请输入: # dnf history rollback 12 或者,要恢复事务历史记录中的所有事务,请使用事务 ID 1: # dnf history rollback 1
- 命令/配置摘录:
# dnf 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第 9 章 管理自定义软件存储库
- 要点:为了为您的 Red Hat Enterprise Linux (RHEL) 10 系统提供对特定机构或第三方软件的访问权限,请使用 DNF 工具添加和配置自定义软件仓库。通过管理这些自定义源,您可以安装和更新环境所需的专用软件包。
- 要点:您可以在 /etc/dnf/dnf.conf 文件或 /etc/yum.repos.d/ 目录中的 .repo 文件中配置软件仓库。
- 列表:在您的系统中添加软件仓库: # dnf config-manager --add-repo <repository_URL>
- 列表:检查并(可选)更新之前在 /etc/yum.repos.d/ <repository_URL> .repo 文件中创建的 存储库设置: # cat /etc/yum.repos.d/<repository_URL>.repo
- 列表:可选:禁用添加到您的系统中的 DNF 存储库: # dnf config-manager --disable <repository_ID> 要重新启用存储库,请输入: # dnf config-manager --enable <repository_ID>
- 命令/配置摘录:
# dnf config-manager --add-repo <repository_URL>
# cat /etc/yum.repos.d/<repository_URL>.repo- 注意:警告 从红帽基于证书的 Content Delivery Network (CDN)以外的未经验证或不受信任的源获取和安装软件包存在潜在的安全风险,并可能导致安全性、稳定性、兼容性和可维护性问题。
附录 A. DNF 命令列表
- 要点:使用以下 DNF 命令安装、更新、删除和查询系统内容。
A.1. 列出 RHEL 中内容的命令
- 要点:使用以下 DNF 命令搜索和检查 Red Hat Enterprise Linux (RHEL) 10 系统可用的或已安装的软件。
- 表格样本(共 15 行):
- 命令 | 描述
- dnf search <term> | 使用与软件包相关的术语搜索软件包。
- dnf repoquery <package_name> | 搜索为所选软件包及其版本启用的 DNF 存储库。
- dnf list | 列出所有已安装的和可用的软件包信息。
A.2. 在 RHEL 中安装内容的命令
- 要点:使用以下命令在 Red Hat Enterprise Linux (RHEL) 10 系统上安装软件。
- 表格样本(共 9 行):
- 命令 | 描述
- dnf install <package_name> | 安装软件包。
- dnf install <package_name_1> <package_name_2> | 同时安装多个软件包及其依赖项。
- dnf install <package_name>.<architecture> | 在 multilib 系统(AMD64、Intel 64 机器)上安装软件包时,通过将其追加到软件包名称来指定软件包的架构。
A.3. 删除 RHEL 中内容的命令
- 要点:使用以下 DNF 命令从 Red Hat Enterprise Linux (RHEL) 10 系统中卸载软件。
- 表格样本(共 5 行):
- 命令 | 描述
- dnf remove <package_name> | 删除特定软件包以及所有依赖的软件包。
- dnf remove <package_name_1> <package_name_2> | 同时删除多个软件包及其未使用的依赖项。
- dnf group remove <group_name> | 按组名称删除软件包组。
完整目录
- 使用 DNF 软件管理工具管理 RPM 存储库中的内容
- 对红帽文档提供反馈
- 第 1 章 RHEL 10 中内容的分发
- 1.1. 软件仓库
- 1.2. 应用程序流
- 第 2 章 配置 DNF
- 2.1. 查看当前的 DNF 配置
- 2.2. 设置 DNF 主选项
- 2.3. 启用和禁用 DNF 插件
- 2.4. 从 DNF 操作中排除软件包
- 第 3 章 搜索 RHEL 内容
- 3.1. 搜索软件包
- 3.2. 列出软件包
- 3.3. 显示软件包信息
- 3.4. 列出软件包组和它们提供的软件包
- 3.5. 列出软件仓库
- 3.6. 在 DNF 输入中指定 glob 表达式
- 3.7. 其他资源
- 第 4 章 安装 RHEL 内容
- 4.1. 安装软件包
- 4.2. 安装软件包组
- 4.3. 其他资源
- 第 5 章 更新 RHEL 内容
- 5.1. 检查更新
- 5.2. 更新软件包
- 5.3. 更新与安全相关的软件包
- 5.4. 其他资源
- 第 6 章 在 RHEL 中自动化软件更新
- 6.1. 安装 DNF Automatic
- 6.2. DNF Automatic 配置文件
- 6.3. 启用 DNF Automatic
- 6.4. dnf-automatic 软件包中包含的 systemd 计时器单元的概述
- 第 7 章 删除 RHEL 内容
- 7.1. 删除安装的软件包
- 7.2. 删除软件包组
- 7.3. 其他资源
- 第 8 章 处理软件包管理历史记录
- 8.1. 列出 DNF 交易
- 8.2. 恢复 DNF 事务
- 8.2.1. 撤销单个 DNF 交易
- 8.2.2. 撤销多个 DNF 交易
- 第 9 章 管理自定义软件存储库
- 附录 A. DNF 命令列表
- A.1. 列出 RHEL 中内容的命令
- A.2. 在 RHEL 中安装内容的命令
- A.3. 删除 RHEL 中内容的命令
