欢迎,来自IP地址为:18.97.14.91 的朋友
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 | 如果软件包更新过程中存在不相关的依赖包,则软件包不更新 | 软件包更新时不进行依赖包相关性检查 |