DNF 包管理基础
适用于 CentOS Stream 9 & 10 / AlmaLinux 9.x & 10.x / Rocky Linux 9.x & 10.x
DNF (Dandified YUM) 是 EL 9 系列的默认包管理器,取代了 EL 7 时代的 YUM。本文带你掌握日常使用中最常见的 DNF 操作。
- 搜索、安装、更新和删除软件包
- 查看已安装的包和包信息
- 管理软件包缓存
- 理解 DNF 与 YUM 的关系
- 一台已安装 EL 9.x 的系统(物理机或虚拟机均可)
- 拥有
sudo权限的用户账户 - 系统已联网
使用 dnf search 在仓库中查找软件包:
$ dnf search nginx输出示例:
Last metadata expiration check: 2:15:30 ago on Mon 24 Mar 2026.======================== Name Exactly Matched: nginx ========================nginx.x86_64 : A high performance web server and reverse proxy server==================== Name & Summary Matched: nginx ====================nginx-mod-http-perl.x86_64 : Nginx HTTP perl modulenginx-mod-stream.x86_64 : Nginx stream modules-
查看包信息(可选但推荐)
查看 nginx 包的详细信息 $ dnf info nginx -
安装软件包
安装 nginx $ sudo dnf install nginxDNF 会显示将要安装的包和依赖列表,输入
y确认。 -
验证安装
确认 nginx 已安装 $ rpm -q nginxnginx-1.24.0-1.el9.x86_64
$ sudo dnf update nginx$ sudo dnf update$ dnf check-update$ sudo dnf remove nginx查看已安装的包
Section titled “查看已安装的包”$ dnf list installed$ dnf list installed | grep nginx$ dnf provides /usr/sbin/nginx$ sudo dnf clean all$ sudo dnf makecacheDNF 与 YUM 的关系
Section titled “DNF 与 YUM 的关系”在 EL 9 上,yum 命令实际是 dnf 的软链接:
$ ls -la /usr/bin/yumlrwxrwxrwx 1 root root 5 Jan 1 00:00 /usr/bin/yum -> dnf-3你可以继续使用 yum 命令,效果与 dnf 完全一致。但建议新用户直接习惯使用 dnf。
提示 “No match for argument: xxx”
Section titled “提示 “No match for argument: xxx””包名可能不在已启用的仓库中。尝试:
$ dnf search xxx # 确认包名是否正确$ dnf repolist # 查看已启用的仓库如果包在 EPEL 中,请参考 EPEL 与第三方源。
提示 “This command has to be run with superuser privileges”
Section titled “提示 “This command has to be run with superuser privileges””你需要使用 sudo 或切换到 root 用户。参考sudo 配置。
EL 10 注意事项:DNF 4.20 的变化
Section titled “EL 10 注意事项:DNF 4.20 的变化”EL 10 仍然使用 DNF 4(当前为 4.20),而不是 DNF 5;dnf 日常命令与 EL 9 基本兼容。主要变化如下:
| 变化项 | EL 9 | EL 10 |
|---|---|---|
| 包管理器 | DNF 4 | DNF 4.20(命令保持兼容) |
| 模块化(AppStream) | 提供模块流 | 已弃用:不再分发 modular 内容,dnf module 会显示弃用警告 |
| filelists 元数据 | 默认下载 | 默认不下载(节省磁盘空间和时间) |
| DNF debug 插件 | 可用 | 已从 dnf-plugins-core 移除 |
| versionlock | dnf-plugin-versionlock | 相同,仍使用 versionlock.list |
dnf --version- 仓库管理 — 添加、启用、禁用软件仓库
- EPEL 与第三方源 — 获取更多软件包
- RPM 基础 — 底层包管理工具
- DNF 官方文档:
man dnf