使用 Yum 和 DNF 掌握 CentOS 和 RHEL 上的软件包管理

Mastering Software Package Management with Yum and DNF on CentOS and RHEL

简介

对于任何使用 CentOS 和 RHEL (红帽企业 Linux) 等 Linux 发行版的系统管理员来说,软件包管理都是一项至关重要的技能。高效地管理软件包可以确保您的系统保持安全、最新并针对性能进行优化。

CentOS 和 RHEL 使用两种主要的软件包管理器:Yum (Yellowdog Updater, Modified)DNF (Dandified Yum)。虽然 Yum 在旧版本(CentOS/RHEL 7 及更早版本)中一直是默认的软件包管理器,但 DNF 从 CentOS 8 和 RHEL 8 开始取代了 Yum,提供了更高的性能、更好的依赖关系解析和更佳的内存管理。

在本指南中,我们将探讨使用 Yum 和 DNF 进行软件包管理的各个方面,从安装、更新和移除软件包,到管理软件仓库和处理依赖关系。

了解 Yum 和 DNF

什么是 Yum?

Yum (Yellowdog Updater, Modified) 是一种软件包管理工具,可帮助用户在 CentOS 和 RHEL 系统上安装、更新和移除软件包。它可以自动管理软件依赖关系,确保在安装软件包的同时安装所需的库和依赖项。

什么是 DNF?

DNF (Dandified Yum) 是 CentOS 8 和 RHEL 8 中引入的下一代软件包管理器。与 Yum 相比,它提供更快的软件包管理、更高的内存效率和改进的依赖关系解析。尽管 Yum 在较新版本中仍然可用,但它充当指向 DNF 的符号链接。

DNF 相对于 Yum 的主要优势

  • 改进的性能和速度

  • 减少的内存使用

  • 更好的依赖关系管理

  • 增强的安全性和模块化

检查和更新软件包仓库

在安装或更新软件之前,最好先确保系统软件包仓库是最新的。

使用 Yum (CentOS/RHEL 7 及更早版本)
yum check-update
yum update
使用 DNF (CentOS/RHEL 8 及更高版本)
dnf check-update
dnf update

update 命令刷新软件包列表,并确保已安装的软件是最新的。

安装软件包

可以从官方或第三方仓库安装软件包。

使用 Yum
yum install package-name
使用 DNF
dnf install package-name

示例

dnf install httpd -y   # Installs Apache web server

-y 标志自动确认安装,无需用户干预。

移除软件包

如果不再需要某个软件包,您可以将其移除以释放系统资源。

使用 Yum
yum remove package-name
使用 DNF
dnf remove package-name

示例

dnf remove httpd -y   # Removes Apache web server

搜索软件包

如果您不知道确切的软件包名称,可以在仓库中搜索它。

使用 Yum
yum search package-name
使用 DNF
dnf search package-name

示例

dnf search nginx   # Searches for Nginx packages

列出已安装的软件包

要列出系统上所有已安装的软件包,请使用以下命令。

使用 Yum
yum list installed
使用 DNF
dnf list installed

示例

dnf list installed | grep httpd   # Check if Apache is installed

查看详细的软件包信息

要检索有关软件包的详细信息,例如版本、仓库和描述

使用 Yum
yum info package-name
使用 DNF
dnf info package-name

示例

dnf info vim   # Get information about the Vim text editor

管理软件包组

一些软件包被分组在一起以便于安装。

列出可用的组
dnf group list
安装一个组
dnf group install "Development Tools" -y
移除一个组
dnf group remove "Development Tools" -y

处理软件包依赖关系

检查依赖关系
dnf deplist package-name
移除未使用的依赖项
dnf autoremove

此命令移除已安装软件包不再需要的孤立依赖项。

清除软件包缓存

要释放磁盘空间或解决仓库问题,请清除软件包缓存。

使用 Yum
yum clean all
使用 DNF
dnf clean all

启用和禁用仓库

要临时启用或禁用仓库

dnf --enablerepo=repository-name install package-name
dnf --disablerepo=repository-name install package-name

要永久启用或禁用仓库,请编辑 /etc/yum.repos.d/ 中的仓库文件。

使用 DNF 事务历史

DNF 跟踪所有事务,使其易于撤消更改。

查看事务历史
dnf history
撤消事务
dnf history undo transaction-id
回滚到之前的状态
dnf history rollback transaction-id

安装本地 RPM 文件

要使用 .rpm 文件手动安装软件包

使用 Yum
yum localinstall package.rpm
使用 DNF
dnf install package.rpm

检查和应用安全更新

检查可用的安全更新
dnf updateinfo list security
仅应用安全更新
dnf update --security

结论

高效地管理软件包对于使用 CentOS 和 RHEL 的系统管理员至关重要。虽然 Yum 多年来一直是值得信赖的软件包管理器,但 DNF 在性能和安全性方面提供了显著的改进。通过掌握这些命令,您可以高效地安装、更新和管理软件包,确保 Linux 系统的稳定性和安全性。

 

George Whittaker 是 Linux Journal 的编辑,也是一位定期撰稿人。George 撰写技术文章已有二十年,并且是 Linux 用户超过 15 年。在空闲时间,他喜欢编程、阅读和玩游戏。

加载 Disqus 评论