DNF包管理器克服了YUM包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。
DNF使用 RPM, libsolv 和 hawkey 库进行包管理操作。尽管它没有预装在 CentOS7 和 RHEL 7 中,但你可以在使用 YUM 的同时使用 DNF 。
这个消息是相当令人兴奋的,然而随着RHEL8/CentOS8的发布,官方已确认默认将dnf命令替换为原有的yum命令。
YUM(即Yellowdog包管理器 )是在GNU通用公共许可证发布了一个免费和开源的基于命令行的工具,它主要用Python编写的编程语言。 YUM开发用于管理和更新RedHat Linux,后来得到广泛的认可,并成为RedHat企业Linux,Fedora,CentOS和其他基于RPM的Linux发行版的包管理器。
用DNF代替Yum的想法
DNF项目的开发者,RedHat的员工,ALEKozumplík说:
“ 2009年,我在从事系统安装程序’ Anaconda ‘的工作时,第一次了解Linux。我想从事一个完全不同的项目,这使我可以探索Fedora的包管理工具。我已经厌倦了解释DNF代表什么,它是一个软件包管理器名称没有别的意义。 为了不与YUM的命名冲突,因此它被命名为DNF。”
由于Yum的先天不足之处导致了DNF的诞生:
- YUM的依赖关系解析是一场噩梦,它在DNF中使用SUSE库“ libsolv”和Python包装器以及C Hawkey进行了解析。
- YUM没有文档化的API接口。
- 建立新功能很困难。
- 除Python外,不支持其他扩展。
- 无法达到最小化内存消耗以及最小化元数据使用。
Ale¨Kozumplík表示,YUM软件包维护者尚未准备好做这些更新。YUM目前具有大约59000行代码,而DNF只具有29000 行代码。
DNF开发
DNF首次出现在Fedora 18中。Fedora 20是第一个正式使用DNF代替YUM的Linux发行版。
DNF如今面临的技术挑战–实现YUM的所有功能。对于普通用户,DNF提供软件包下载,安装,更新,降级和删除的功能。但是,仍然很少不支持的某些功能,例如–在安装过程中跳过损坏的软件包,调试,详细输出,在安装过程中排除软件包等。
DNF命令的基本用法
使用yum命令在fedora或更高版本在RHEL / CentOS上安装dnf。
# yum install dnf
使用概要。
dnf [options] <command> [<argument>]
安装软件包。
# dnf install <name_of_package>
删除软件包。
# dnf remove <name_of_package>
更新和升级系统。
# dnf update # dnf upgrade
注 :DNF配置文件的默认位置:/etc/dnf/dnf.conf。
DNF命令的高级用法
请参见后续文章《在Linux下DNF软件包管理工具中27个命令例子》
(END)
原文翻译自:https://www.tecmint.com/dnf-next-generation-package-management-utility-for-linux/