dnf是新一代的rpm软件包管理器。首次出现在 Fedora 18 这个发行版中。而最近,它取代了yum,正式成为 Fedora 22 的包管理器。
dnf包管理器克服了yum包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。dnf使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS 和 RHEL 7 中,但你可以在使用yum的同时使用dnf 。
当然dnf也不是完美的,例如:在dnf中没有 –skip-broken 命令,并且没有替代命令供选择。 没有判断哪个包提供了指定依赖的 resolvedep 命令,没有用来列出某个软件依赖包的 deplist 命令等等。
**语法格式:** dnf [参数]
**常用参数:**
| repolist | 显示系统中可用的 DNF 软件库 |
| ----------------------------- | -------------------------------------------------------------------------- |
| list | 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包 |
| search <包名> | 搜索软件库中的软件包 |
| provides <路径> | 查找某一文件的提供者 |
| info <包名> | 查看软件包详情 |
| install <包名> | 安装软件包 |
| update <包名> | 升级软件包 |
| check-update | 检查系统软件包的更新 |
| update | 升级所有系统软件包 |
| remove | 删除软件包 |
| autoremove | 删除无用孤立的软件包 |
| clean all | 删除缓存的无用软件包 |
| help <命令名> | 获取有关某条命令的使用帮助 |
| help | 查看所有的dnf命令及其用途 |
| history | 查看dnf命令的执行历史 |
| grouplist | 查看所有的软件包组 |
| groupinstall <软件包组名称> | 安装一个软件包组 |
| groupupdate <软件包组名称> | 升级一个软件包组中的软件包 |
| groupremove <软件包组名称> | 删除一个软件包组 |
| distro-sync | 更新软件包到最新的稳定发行版 |
| reinstall <包名> | 重新安装特定软件包 |
| downgrade <包名> | 回滚某个特定软件的版本 |
| –version | 查看 DNF 包管理器版本 |
**参考实例**
回滚acpid软件包到特定版本:
```
[root@anycode ~]# dnf downgrade acpid
```
重新安装特定软件包:
```
[root@anycode ~]# dnf reinstall nano
```
查看所有的软件包组:
```
[root@anycode ~]# dnf grouplist
```