用了#CentOS8# 之后, 突然发现#DNF# 命令有点多, 对于长期使用#CentOS7#的我来说, 用yum 挺顺手的, 这个#DNF#是什么鬼? 不是有个游戏#地下城与勇士#也叫DNF吗?赶紧学习学习。
DNF, 全称Dandified Yum,由 Yum 中分支出来,采用了基于 SAT 依赖解决算法,是新一代的RPM软件包管理器,。他首先出现在 Fedora 18 这个发行版中。而最近,他取代了YUM,正式成为 Fedora 22 的包管理器。DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。DNF没有预装在 CentOS 和 RHEL 7 中,但可以在使用 YUM 的同时使用 DNF, 在RHEL/CentOS8 之后, DNF就是默认安装的。
Yum 是 RPM 的前端工具,它管理依赖关系和资源库,然后使用 RPM 来安装、下载和删除包。Yum 主要是用 Python 编写的,它有自己的应对依赖解析的方法。 Yum 有三大问题:API 缺乏文档、有问题的依赖解决算法,以及无法重构内部函数。这里提到的最后一个问题,其实和文档的缺乏有关。Yum 插件使用的各种方法来源于 Yum 的代码,一旦改变有可能造成 Yum 的突然崩溃!它的 API 没有完整的文档,它的扩展系统只允许 Python 插件。
由于 Yum 许多长期存在的问题仍未得到解决,因此 Yum 包管理器已被 DNF 包管理器取代。这些问题包括性能差、内存占用过多、依赖解析速度变慢等。Yum 无法适应倡导“默认即 Python 3”理念的 Fedora ,而 DNF 则可以同时支持 Python 2 和 Python 3。 DNF 按照相同的语义逻辑保留了命令行接口的一致。幸运的是,DNF 的 Python API 是完全不同于 Yum 的。
DNF会兼容YUM ,因此从命令行使用上看并没有太大区别。
YUM 和DNF比较:yum install –> dnf install
yum upgrade –> dnf upgrade
yum remove –> dnf remove
yum list installed –> dnf list installed
yum search search_string –> dnf search search_string
yum repolist –> dnf repolist
DNF 常用操作:安装新的package:dnf install httpd安装时候指定默认同意选项:dnf install httpd-manual -y查找可用的更新:dnf check-update更新RPM包:dnf update bash -y单独下载RPM包对应的文件:
需要先安装一个插件dnf install dnf-plugins-core然后就可以下载了:dnf download httpd卸载RPM包:dnf remove httpd重新安装 Package:dnf reinstall httpd -y查看 源Repository 信息:dnf repolist all
增加阿里云的源:dnf config-manager --add-repo=https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo打开或者关闭指定源 Repository:dnf --enablerepo=disabled-repo install package-example
查找某个包:
dnf search php
查看包的具体信息:
dnf info httpd
列出已经安装的包:dnf list installed
查看可用的包:
dnf list available | grep httpd