IP Address:3.235.77.252



DNF 和 YUM 均是 rpm 软件包管理工具,但是 DFN 替代 YUM 的说法由来已久,因为 YUM 包管理工具有一些问题长期得不到解决。

这些问题包括性能低下、内存占用高以及依赖包解决方案不佳等。

而 DNF 在依赖包解决方案中采用了由 SUSE 开发的”libsolv”库,用以提升依赖包解析性能。

YUM 是一个管理 RPM 软件依赖包和软件库的前端工具,可以下载 RPM 软件包并安装,最后删除下载的软件包。

至于为什么要开发一个新的工具来替代 YUM,而不是解决 YUM 现有的问题,其原因在于想要解决 YUM 现有的问题技术上存在很多问题,并且 YUM 团队也不能很快适应更新带来的改变。

另外,更重要的原因是 YUM 的源代码有大概56000行,修改起来工作量巨大。

序号 DNF (Dandified YUM) YUM (Yellowdog Updater, Modified)
1 DNF依赖解决方案采用用由 SUSE 开发的高性能 libsolv 库 YUM依赖解决方案为公共 API
2 API 接口文档完备 API 接口文档较完备
3 由 C C++ 和 Python 编写 由 Python 编写
4 DNF 目前应用在 Fedora、RHEL 8、CentOS 8、OEL 8和 Mageia 6/7 YUM 目前应用在 RHEL 6/7、CentOS 6/7 和 OEL 6/7
5 DNF 支持各类扩展 YUM 支持 Python 扩展
6 接口文档完备,开发新功能容易 接口文档不完备,开发新功能困难
7 同步软件库元数据时内存消耗低 同步软件库元数据消耗大量内存
8 如果软件包更新过程中存在不相关的依赖包,则软件包不更新 软件包更新时不进行依赖包相关性检查
9 如果允许的软件库没响应,则 DNF 会忽略并继续使用可用软件库 如果允许软件库没响应,则 YUM 程序会立即中止
10 DNF 中 update 和 upgrade 相同 YUM 中 update 和 upgrade 不同
11 程序包的依赖包是不会更新的 YUM 提供选项来设置这种行为
13 DNF 允许删除所有内核文件,包括正在使用的内核 YUM 禁止删除正在使用的内核
14 如果软件包更新过程中存在不相关的依赖包,则软件包不更新 软件包更新时不进行依赖包相关性检查

发表评论

电子邮件地址不会被公开。 必填项已用*标注