DNF - 用于基于 RPM 的发行版的下一代包管理实用程序
最近的一则新闻引起了许多 Linux 用户、专业人士和学习者的注意,“DNF”(官方代表什么都没有)将取代发行版中的“YUM”包管理实用程序即使用 RPM 包管理器的 Fedora、CentOS、RedHat 等。
这个消息相当令人惊讶,或多或少有一个软件包管理器附加在 Linux 发行版的身份上,负责安装、更新和删除软件包。
YUM(代表Yellowdog Updater, Modified)是一个基于命令行的免费开源实用程序,根据 GNU 通用公共许可证发布,主要用 Python 编程语言编写。 YUM 是在杜克大学开发的,用于管理和更新 RedHat Linux,后来得到了广泛的认可,并成为 RedHat Enterprise Linux、Fedora、CentOS 和其他基于 RPM 的 Linux 发行版的包管理器。它通常被 Linux 专业人士非正式地称为“您的包管理器”。
另请阅读
- YUM(Yellowdog Updater,修改版)——20 个包管理命令
- RPM(红帽软件包管理器)——20 个 RPM 命令的实用示例
用 DNF 取代 Yum 的想法
Ale´ Kozumplík,DNF 项目的开发者,是 RedHat 员工。他说:
“2009 年,在开发‘Anaconda’ – 系统安装程序时,他第一次对 Linux 有了深入的了解。他想从事一个完全不同的项目,让他探索 Fedora 的打包工具。”
Ale´ Kozumplík 说 – 他已经厌倦了解释 DNF 代表什么,它是一个包管理器名称答案,所以就是这样,没有别的。它的命名必须与YUM不冲突,因此被命名为DNF。
导致 DNF 诞生的 Yum 的缺点:
- YUM 的依赖解析是一场噩梦,在 DNF 中通过 SUSE 库“libsolv”和 Python 包装器以及 C Hawkey 得到了解决。
- YUM 没有记录的 API。
- 构建新功能很困难。
- 不支持除 Python 之外的扩展。
- 内存减少较少,元数据自动同步较少——这是一个耗时的过程。
Ale´ Kozumplík 表示,除了分叉 YUM 并开发 DNF 之外,他别无选择。 YUM 软件包维护者还没有准备好实施这些更改。 YUM 大约有 59000 LOC,而 DNF 有 29000 LOC(代码行)。
DNF开发
DNF 首次在 Fedora 18 中亮相。 Fedora 20 是第一个欢迎用户使用 DNF 功能代替 YUM 的 Linux 发行版。
DNF目前面临的技术挑战是——实现YUM的所有功能。 DNF为普通用户提供包下载、安装、更新、降级和删除。然而,仍然很少或不支持诸如在安装过程中跳过损坏的包、调试、详细输出、启用存储库、在安装过程中排除包等功能。
DNF与前作对比:
- –skip-broken 开关没有效果。
- 命令更新=升级
- 命令resolvedep不可用
- 默认情况下,skip_if_unavailable 选项处于开启状态
- 依赖关系解析过程在命令行中不可见。
- 未来版本中的并行下载。
- 撤消历史记录
- 达美转速
- bash 补全
- 自动删除等
DNF 与 Fedora 的集成以及后来在商业环境中的集成不时受到 RHEL 的质疑。最新版本为DNF 0.6.0,于2014年8月12日发布。
测试DNF命令
使用 yum 命令在 fedora 或更高版本的 RHEL/CentOS 上安装 dnf。
yum install dnf
用法概要。
dnf [options] <command> [<argument>]
安装一个包。
dnf install <name_of_package>
删除包。
dnf remove <name_of_package>
更新和升级系统。
dnf update
dnf upgrade
注意:如上所述 update=upgrade。所以。这个包会实现滚动发布之类的功能吗? – 未来的问题。
dnf配置文件默认位置:/etc/dnf/dnf.conf。
项目的未来
该项目旨在提高透明度并完整记录该项目。该项目还处于起步阶段,需要社区的支持来整合该项目。很多功能还需要移植,需要时间。 DNF 将随 Fedora 22 正式发布。
目前为止就这样了。我很快就会再次在这里发表另一篇有趣的文章。在那之前请继续关注并保持联系。不要忘记在下面的评论中向我们提供您的宝贵反馈。