使用 Yum 和 DNF 掌握 CentOS 和 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
命令刷新软件包列表,并确保已安装的软件是最新的。
安装软件包
可以从官方或第三方仓库安装软件包。
使用 Yumyum install package-name
使用 DNF
dnf install package-name
示例
dnf install httpd -y # Installs Apache web server
-y
标志自动确认安装,无需用户干预。
移除软件包
如果不再需要某个软件包,您可以将其移除以释放系统资源。
使用 Yumyum remove package-name
使用 DNF
dnf remove package-name
示例
dnf remove httpd -y # Removes Apache web server
搜索软件包
如果您不知道确切的软件包名称,可以在仓库中搜索它。
使用 Yumyum search package-name
使用 DNF
dnf search package-name
示例
dnf search nginx # Searches for Nginx packages
列出已安装的软件包
要列出系统上所有已安装的软件包,请使用以下命令。
使用 Yumyum list installed
使用 DNF
dnf list installed
示例
dnf list installed | grep httpd # Check if Apache is installed
查看详细的软件包信息
要检索有关软件包的详细信息,例如版本、仓库和描述
使用 Yumyum 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
此命令移除已安装软件包不再需要的孤立依赖项。
清除软件包缓存
要释放磁盘空间或解决仓库问题,请清除软件包缓存。
使用 Yumyum 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 localinstall package.rpm
使用 DNF
dnf install package.rpm
检查和应用安全更新
检查可用的安全更新dnf updateinfo list security
仅应用安全更新
dnf update --security
结论
高效地管理软件包对于使用 CentOS 和 RHEL 的系统管理员至关重要。虽然 Yum 多年来一直是值得信赖的软件包管理器,但 DNF 在性能和安全性方面提供了显著的改进。通过掌握这些命令,您可以高效地安装、更新和管理软件包,确保 Linux 系统的稳定性和安全性。