YUM已死,DNF永生
这个应该是从Fedora22开始的……
DNF从yum
分支出来,使用专注于性能的C语言库hawkey进行依赖关系解析工作,大幅度提升包管理操作效率并降低内存消耗,按原先的节奏本应该是Fedora 22实现这一替代方案,随着DNF 1.0版本的发布,这一刻终于到来。
这样的激进更新是不可避免的,主要是由于yum
不能“Python 3 as default”,而DNF支持Python 2和Python3。(Python 3分支自2008年发布以来积极开发了五年,已经成熟和稳定,而目前仍在维护的Python 2分支不增加新特性,只接受bug和安全修正,它最早的版本是在2000年发布的。)与此同时,DNF Python API和yum
是完全不同的,这两个项目中所有已知的不兼容问题也都被记录。
在Fedora 22 Core中只有DNF而
yum
项目正式宣告死亡。
yum
依然可以下载到,也可同样调用软件包,以及Python API照旧。只是**yum
可执行文件被重新命名为yum-deprecated,以及yum
调用的命令行被重新定向至DNF。这样你就可以在一个系统上同时保有yum
和DNF。**
启动DNF项目的原因是yum
的三个陷阱:
- undocumented API
- broken dependency solving algorithm
- inability to refactor internal functions。
最后被提及的问题是缺少文件链接。yum
插件可以在yum
代码中使用任何method,这会造成yum
utility因一些细小变化而突然崩溃。
DNF目标是为了避免yum
执行的错误。从一开始所有暴露的API都被适当的记录,且测试几乎包含了每一次新的提交。这个项目采用了敏捷开发,会提供用户一些优先级功能实现。
DNF现在也在极力推进yum
迁移至DNF,并改善用户体验。为了实现轻松迁移,已经将DNF迁移插件导入了包、组和事务元数据,实现从yum
至新的Fedora包管理器。