网站搜索

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 专业人士非正式地称为“您的包管理器”。

另请阅读

  1. YUM(Yellowdog Updater,修改版)——20 个包管理命令
  2. RPM(红帽软件包管理器)——20 个 RPM 命令的实用示例

用 DNF 取代 Yum 的想法

Ale´ Kozumplík,DNF 项目的开发者,是 RedHat 员工。他说:

“2009 年,在开发‘Anaconda’ – 系统安装程序时,他第一次对 Linux 有了深入的了解。他想从事一个完全不同的项目,让他探索 Fedora 的打包工具。”

Ale´ Kozumplík 说 – 他已经厌倦了解释 DNF 代表什么,它是一个包管理器名称答案,所以就是这样,没有别的。它的命名必须与YUM不冲突,因此被命名为DNF

导致 DNF 诞生的 Yum 的缺点:

  1. YUM 的依赖解析是一场噩梦,在 DNF 中通过 SUSE 库“libsolv”和 Python 包装器以及 C Hawkey 得到了解决。
  2. YUM 没有记录的 API。
  3. 构建新功能很困难。
  4. 不支持除 Python 之外的扩展。
  5. 内存减少较少,元数据自动同步较少——这是一个耗时的过程。

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与前作对比:

  1. –skip-broken 开关没有效果。
  2. 命令更新=升级
  3. 命令resolvedep不可用
  4. 默认情况下,skip_if_unavailable 选项处于开启状态
  5. 依赖关系解析过程在命令行中不可见。
  6. 未来版本中的并行下载。
  7. 撤消历史记录
  8. 达美转速
  9. bash 补全
  10. 自动删除等

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 正式发布。

目前为止就这样了。我很快就会再次在这里发表另一篇有趣的文章。在那之前请继续关注并保持联系。不要忘记在下面的评论中向我们提供您的宝贵反馈。