Skip to the content.

CentOS 9 实战(5):软件包管理与系统更新

欢迎来到《CentOS 9 实战速查手册》专栏的第 5 篇文章。在这里,我们将探讨 CentOS 9 中的软件包管理和系统更新。掌握这些知识可以帮助你有效地安装、更新和删除软件包,确保系统始终保持最新状态和最佳性能。

1. 软件包管理工具

CentOS 9 使用 dnf 作为默认的软件包管理工具,取代了之前的 yumdnf 提供了更快的依赖解析、更好的性能和更丰富的插件支持。

1.1 dnf 的基本命令

安装软件包

使用 dnf install 命令安装软件包:

# 安装单个软件包
sudo dnf install package_name

# 安装多个软件包
sudo dnf install package_name1 package_name2

更新软件包

使用 dnf update 命令更新系统中的所有软件包:

# 更新所有软件包
sudo dnf update -y

删除软件包

使用 dnf remove 命令删除软件包:

# 删除单个软件包
sudo dnf remove package_name

# 删除多个软件包
sudo dnf remove package_name1 package_name2

搜索软件包

使用 dnf search 命令搜索软件包:

# 搜索包含关键字的软件包
dnf search keyword

列出已安装的软件包

使用 dnf list installed 命令列出系统中已安装的软件包:

# 列出所有已安装的软件包
dnf list installed

1.2 dnf 和 yum 的区别

dnfyum 之间的主要区别包括:

2. EPEL 仓库

EPEL (Extra Packages for Enterprise Linux) 是由 Fedora 项目维护的一个软件包仓库,提供了大量的额外软件包,可以扩展 CentOS 系统的功能。

2.1 启用 EPEL 仓库

使用以下命令启用 EPEL 仓库

# 安装 EPEL 仓库
sudo dnf install -y epel-release

# 更新仓库元数据
sudo dnf update -y

2.2 安装 EPEL 软件包

启用 EPEL 仓库 后,你可以使用 dnf 命令安装 EPEL 中的软件包:

# 安装 EPEL 软件包
sudo dnf install package_name

3. 系统更新与升级

保持系统和软件包的最新状态是确保系统安全性和性能的重要措施。

3.1 更新系统

使用 dnf update 命令更新系统中的所有软件包:

# 更新所有软件包
sudo dnf update -y

3.2 自动更新配置

可以配置系统自动执行软件包更新,确保系统始终保持最新状态。

安装 dnf-automatic

dnf-automatic 是一个可以自动更新系统的软件包:

# 安装 dnf-automatic
sudo dnf install -y dnf-automatic

配置 dnf-automatic

编辑 /etc/dnf/automatic.conf 文件,配置自动更新选项:

sudo vim /etc/dnf/automatic.conf

确保以下配置项设置为 true

[commands]
upgrade_type = default
random_sleep = 0
download_updates = yes
apply_updates = yes

启用自动更新服务

使用以下命令启用并启动 dnf-automatic 服务:

# 启用 dnf-automatic 服务
sudo systemctl enable --now dnf-automatic.timer

4. 软件包管理的高级功能

4.1 使用 dnf history 命令

dnf history 命令可以查看和管理软件包操作历史记录:

# 查看历史记录
dnf history

# 撤销最近一次操作
sudo dnf history undo last

# 重做最近一次操作
sudo dnf history redo last

4.2 清理缓存

使用 dnf clean 命令清理缓存文件,释放磁盘空间:

# 清理缓存
sudo dnf clean all

5. 总结

在这篇文章中,我们介绍了 CentOS 9软件包管理和系统更新,包括 dnf 的基本命令、EPEL 仓库的启用和使用,以及自动更新配置。通过掌握这些知识,你可以更高效地管理和维护你的 CentOS 系统。在接下来的文章中,我们将深入探讨 服务管理与 systemd,敬请期待。