1、概述
DNF(Dandified YUM)是一个在基于 Red Hat 的 Linux 发行版(如 Fedora、CentOS、RHEL)上用于管理软件包的包管理器。它是 YUM 的下一代版本,提供了更多功能和改进。
RHEL8中默认使用的软件批量管理工具由原版本的yum换成了速度更快的dnf,原有的yum命令仅为dnf的软链接,当然依旧可以使用的。
dnf源文件所在目录依旧为/etc/yum.repos.d/下,但官方在发布Beta版本时并没有为此系统自带源文件,需要我们自行下载准备。
[root@kwephis47629719 bin]# cat /etc/dnf/dnf.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
sslverify=False
[root@kwephis47629719 bin]# cd /etc/yum.repos.d/
[root@kwephis47629719 yum.repos.d]# ll
total 4.0K
-rw-r--r--. 1 root root 1.7K Jan 29 2022 openEuler.repo
[root@kwephis47629719 yum.repos.d]# vi openEuler.repo
[root@kwephis47629719 yum.repos.d]# echo "" > openEuler.repo
[root@kwephis47629719 yum.repos.d]# uname -a
Linux kwephis47629719 5.10.0-60.18.0.50.oe2203.x86_64 #1 SMP Wed Mar 30 03:12:24 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@kwephis47629719 yum.repos.d]# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 LTS"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 LTS"
ANSI_COLOR="0;31"
[root@kwephis47629719 yum.repos.d]# vi openEuler.repo
[root@kwephis47629719 yum.repos.d]# dnf clean all
0 files removed
[root@kwephis47629719 yum.repos.d]# dnf makecache
openEuler-everything 13 MB/s | 16 MB 00:01
openEuler-epol 4.9 MB/s | 2.6 MB 00:00
openEuler-update 14 MB/s | 85 MB 00:06
Metadata cache created.
[root@kwephis47629719 yum.repos.d]#
2、dnf常用命令介绍
语法基本和之前的yum命令没啥区别。一般情况下,操作系统中会存在两个dnf命令,分别是dnf和dnf-3。
[root@kwephis47629719 etc]# dnf
dnf dnf-3
但是本质上来说都是用的dnf-3,因为在执行文件中,dnf命令创建了软连接指向dnf-3
[root@kwephis47629719 bin]# ll | grep dnf
lrwxrwxrwx. 1 root root 22 Jan 22 2022 debuginfo-install -> /usr/libexec/dnf-utils
lrwxrwxrwx. 1 root root 5 Mar 21 2022 dnf -> dnf-3
-rwxr-xr-x. 1 root root 1.9K Mar 21 2022 dnf-3
因此,平常使用dnf进行软件包管理的时候,只需要使用dnf命令即可,简化命令。
2.1、安装命令
# 安装软件包
[root@kwephis47629719 ~]# dnf install bash-completion.noarch
Last metadata expiration check: 1:35:49 ago on Sun 17 Aug 2025 12:11:52 PM CST.
Package bash-completion-1:2.11-3.oe2203.noarch is already installed.
Dependencies resolved.
Nothing to do.
Complete!
# 重新安装
[root@kwephis47629719 ~]# dnf reinstall -y bash-completion.noarch
Last metadata expiration check: 1:36:29 ago on Sun 17 Aug 2025 12:11:52 PM CST.
Dependencies resolved.
==========================================================================================================================================================================================
Package Architecture Version Repository Size
==========================================================================================================================================================================================
Reinstalling:
bash-completion noarch 1:2.11-3.oe2203 openEuler-update 259 k
Transaction Summary
==========================================================================================================================================================================================
Total download size: 259 k
Installed size: 874 k
Downloading Packages:
bash-completion-2.11-3.oe2203.noarch.rpm 914 kB/s | 259 kB 00:00
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 909 kB/s | 259 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Reinstalling : bash-completion-1:2.11-3.oe2203.noarch 1/2
Cleanup : bash-completion-1:2.11-3.oe2203.noarch 2/2
Verifying : bash-completion-1:2.11-3.oe2203.noarch 1/2
Verifying : bash-completion-1:2.11-3.oe2203.noarch 2/2
Reinstalled:
bash-completion-1:2.11-3.oe2203.noarch
Complete!
2.2、更新软件包
# 更新单个软件包
dnf update -y packagename
# 更新所有软件包
dnf update
2.3、删除软件包
# 删除软件包
dnf remove
# 删除不需要的依赖项
dnf autoremove
2.4、查询操作
# 查询软件包
dnf search 关键字
[root@kwephis47629719 ~]# dnf search bash
# 查询所有已经安装的软件包
dnf list installed
或者
dnf list installed | grep bash
[root@kwephis47629719 ~]# dnf list installed | grep bash
bash.x86_64 5.1.8-6.oe2203 @openEuler-update
bash-completion.noarch 1:2.11-3.oe2203 @openEuler-update
libvirt-bash-completion.x86_64 6.2.0-64.oe2203 @openEuler-update
另外还有一些常用的查询操作,可以根据需要灵活选择。
# 列出所有可用软件包
dnf list available
# 显示软件包信息
dnf info
# 查看软件包提供的文件
dnf provides
2.4、dnf 常用选项
| 选项 | 说明 |
|---|---|
-y | 自动回答"yes" |
-q | 安静模式,减少输出 |
-v | 详细输出 |
--refresh | 在操作前刷新仓库元数据 |
--nogpgcheck | 禁用 GPG 签名检查 |
--skip-broken | 跳过有问题的软件包 |
--best | 尝试安装最佳可用版本 |
3、dnf配置文件
dnf 的主要配置文件位于 /etc/dnf/dnf.conf,常见的配置项包括:
[main]
gpgcheck=1 # 是否检查GPG签名
installonly_limit=3 # 保留的内核版本数量
clean_requirements_on_remove=True # 删除时清理依赖
best=True # 总是尝试安装最佳版本
dnf的配置文件跟yum的配置文件配置内容相同,一般修改了yum.conf配置文件,dnf.conf文件就自动修改了,因为yum.conf文件是一个软链接文件
[root@kwephis47629719 ~]# ll /etc/yum.conf
lrwxrwxrwx 1 root root 12 Sep 6 2023 /etc/yum.conf -> dnf/dnf.conf
[root@kwephis47629719 ~]#
Linux DNF命令详细解析
695

被折叠的 条评论
为什么被折叠?



