要使大多数RPM包正常工作,必须已经在系统上安装一些其他软件,如库、可执行文件等,因为如果您试图用没有依赖包的RPM安装包,包安装将失败,并显示需要哪些组件的错误消息。然后,您必须四处寻找包含所需组件的包。这种情况通常被称为“依赖地狱”。随着基于RPM的应用程序(包括Red Hat Linux)越来越受欢迎,降低包安装的挑战性变得比以往任何时候都更加重要。答案是YUM。但它在一段时间后遇到了一些问题,所以它被一个更快、更好的DNF包管理器所取代。

YUM是什么?

Yellowdog Updater, Modified (YUM)是一个免费的开源程序,最初是为Yellowdog Linux开发的,这个Linux发行版现在已经不存在了。YUM基本上是一个包管理工具,用于安装、更新和删除Red Hat Enterprise Linux中的软件包。它的主要目的是有效地管理与RPM包的依赖关系。这个想法不是把RPM包看作单独的组件,而是更大的软件存储库的一部分。YUM与早期的包管理器相比的一个主要卖点是,它不仅安装您想要安装的包,而且自动安装作为您想要安装的包的先决条件的任何包。YUM由杜克大学物理系的Seth Vidal和Michael Stenner撰写。

DNF是什么?

YUM是成功的,但它面临着一些问题,因为它的年龄。它变得越来越慢,占用了大量内存,很多代码需要重写。进一步做YUM没有任何意义,因此引入了YUM包的下一个改进版本,具有更高级和更健壮的功能——Dandified YUM,更著名的名称是DNF。对于大多数用户来说,更改是表面的,涉及到在命令中用DNF替换YUM。直接比较来看,性能、内存使用和包依赖关系解析方面的改进非常显著。DNF设施取代YUM成为Fedora 22中的默认包管理器。一个主要的区别是DNF坚持严格的API,这鼓励为DNF开发扩展和插件。

YUM和DNF的区别

依赖解析 — 虽然YUM或DNF的主要目的是管理系统上的实际RPM包,但DNF具有更好的依赖解析,因为它使用更现代和先进的’ libsolv ‘来改进依赖解析。Libsolv是一个经过验证的代码库,也是最复杂的依赖解决实现之一。另一方面,YUM使用公共API进行依赖性解析。

API — 虽然DNF与YUM保持了基本的命令行兼容性,但一个主要的区别是DNF坚持严格的API,该API鼓励为DNF开发扩展和插件。API也有很好的文档记录,这使得实现新特性很容易。YUM的API没有DNF的那么完善,因此很难创建新功能。

性能 - DNG包管理器已经取代了YUM,因为许多与YUM长期存在的问题仍然没有解决。YUM速度很慢,使用了大量内存,它的很多代码都需要重写。相比之下,与YUM相比,DNF在同步存储库的元数据时使用的内存非常少,YUM以过度使用内存而闻名。另外,YUM在解决依赖关系时会减慢速度。DNF比YUM有更多更好的功能。

总结

虽然最终用户可能无法注意到这两个包管理器之间的许多差异,但实际上在本质上,可以发现许多功能上的差异。YUM和DNF之间的主要区别主要在于性能、内存使用,以及如何重写代码以使开发人员更容易维护可预测的文档化API。另一个区别是DNF与Python3兼容,而YUM不兼容。另外,包依赖算法已经完全重写。此外,YUM或DNF的主要目的是管理系统上的实际RPM包。

DNF代表YUM是什么?
DNF代表Dandified YUM,基本上是原始YUM包的更高级和更好的版本。DNF取代YUM成为Fedora 22中的默认包管理器。

RPM和DNF有什么区别?
这两个命令都用于在Fedora中安装.rpm包。然而,DNF会自动识别并安装依赖项,而RPM不会。

Linux上的DNF是什么?
DNF最初是YUM包管理器的一种形式,它基本上是YUM的替代品,而不仅仅是一个新版本

Rhel 8使用DNF吗?
是的。它是用于在RHEL 8上安装包的新的包管理器。

YUM和DNF的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:YUM和DNF的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-yum-vs-dnf.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。