yum和dnf的区别对比

0    17    1

Tags:

👉 本文共约1412个字,系统预计阅读时间或需6分钟。

RPM概述

RPM是 一个默认的开源和最流行的包管理程序,用于基于Red Hat系统一样。该工具允许系统管理员和用户安装, 更新,卸载,查询, 验证,并在Unix/linux 操作系统管理系统软件包。该RPM原名,rpm的文件,包括由包需要编译的软件程序和库。该实用程序仅使用于该建在.rpm格式的软件包。

DNF概述

因为yum工具性能差、内存占用过多、依赖解析速度变慢等问题长期得不到解决,同时yum工具过度依赖yum源文件,若是源文件出现问题,yum相关操作可能会失败,针对这种情况,DNF工具应运而生,DNF工具克服了YUM软件管理工具的一些瓶颈,提升了用户体验、内存占用、依赖分析及运行速度等方面的内容。

YUM与DNF区别对比

DNF(DANDIFIED YUM)YUM(YELLOWDOG UPDATER MODIFIED)
DNF 使用 libsolv 来解析依赖关系,由 SUSE 开发和维护YUM 使用公开的 API 来解析依赖关系
API 有完整的文档API 没有完整的文档
由 C、C++、Python 编写的只用 Python 编写
DNF 目前在 Fedora、RHEL 8、CentOS 8、OEL 8 和 Mageia 6/7 中使用YUM 目前在 RHEL 6/7、CentOS 6/7、OEL 6/7 中使用
DNF 支持各种扩展Yum 只支持基于 Python 的扩展
API 有良好的文档,因此很容易创建新的功能因为 API 没有正确的文档化,所以创建新功能非常困难
DNF 在同步存储库的元数据时,使用的内存较少在同步存储库的元数据时,YUM 使用了过多的内存
DNF 使用满足性算法来解决依赖关系解析(它是用字典的方法来存储和检索包和依赖信息)由于使用公开 API 的原因,Yum 依赖性解析变得迟钝
DNF 更新:在 DNF 更新过程中,如果包中包含不相关的依赖,则不会更新YUM 将在没有验证的情况下更新软件包
如果启用的存储库没有响应,DNF 将跳过它,并继续使用可用的存储库处理事务如果有存储库不可用,YUM 会立即停止
安装包的依赖关系不更新Yum 为这种行为提供了一个选项
清理删除的包:当删除一个包时,DNF 会自动删除任何没有被用户明确安装的依赖包Yum 不会这样做
存储库缓存更新计划:默认情况下,系统启动后 10 分钟后,DNF 每小时会对配置的存储库检查一次更新。
这个动作由系统定时器单元 dnf-makecache.timer 控制
Yum 也会这样做
内核包不受 DNF 保护。不像 Yum,你可以删除所有的内核包,包括运行中的内核包Yum 不允许你删除运行中的内核
libsolv:用于解包和读取资源库。
hawkey: 为 libsolv 提供简化的 C 和 Python API 库。
librepo: 提供 C 和 Python(类似 libcURL)API 的库,用于下载 Linux 存储库元数据和软件包。
libcomps: 是 yum.comps 库的替代品。它是用纯 C 语言编写的库,有 Python 2 和 Python 3 的绑定。
Yum 不使用单独的库来执行这些功能

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部