DNF: The New Package Manager Of Fedora 18

Posted by Michael Larabel on June 22, 2012

As mentioned earlier this week, Fedora 18 will feature a new package manager. Here's a redux with some additional information on DNF.

As covered in the original article, the Fedora Engineering & Steering Committee approved "DNF" for Fedora 18. DNF is the new package manager for Fedora 18 that's forked from Yum 3.4. Yum will continue to be the default package management solution for Fedora 18, but DNF will live alongside the "Yellowdog Updater, Modified" as a new experimental solution.

DNF is built atop Hawkey, which is a new package management library that in turn is built on libsolv for its back-end. The new API is said to be better unified, provides fewer restrictions on the client implementation language, and should yield long-term performance improvements. The API, however, isn't yet stable and is more proof-of-concept. DNF development goals include using a SAT solver for dependency resolution, support to eventually use the same SAT solver as DNF within the RPM command, strict API definitions for plug-ins, strict API definitions for extending projects, a leander code-base than Yum, easier maintenance, and better performance while on a smaller memory footprint.

With Fedora 18 the new package manager will be exposed by the dnf command, but it's widely speculated that once stable DNF will eventually be merged into Yum (or replaced) and then succeeds the yum command. Until then they can live independently together should the new DNF solution go awry.

This new route with DNF was chosen over using ZIF or SUSE's zypp because the new solution can provide a sane API with some Yum backwards compatibility, DNF/Hawkey are working towards using the same resolver across the entire stack (with RPM), and the libsolv back-end is well-tested and proven code-base.

Earlier this week there were concerns about DNF since it was to drop Yum's history sub-command support, but since then it's been said the feature will be restored since it's still widely sought after by developers using Yum.

For some additional background on DNF, Ales Kozumplik of Red Hat wrote on the mailing list:
Be assured I am in contact with Yum developers and the new features happening for F18 there are planned to be integrated to DNF.

The decision to fork yum into using libsolv instead of trying to evolve it slowly was a difficult one yet it was the right one. Unified depsolving is only a part of the project, the other primary goal is arriving at concrete, cleaned up API for external applications and plugins. This is very hard to get done without having free hands to refactor, remove, cleanup and change for better testability because in Yum one always has to look behind his back for tricky backward compatibility issues.

I think the best way to describe the "DNF" project really is as "the next-gen yum". Departing from the old APIs is a part of it. There are little alternatives also: the gradual deprecation of some of the Yum's legacy interfaces hasn't been very successful in the past. Or I could keep DNF under the lid for another one or two Fedora releases, but I find it a better alternative to package this early version: both for those Fedora users who will bravely try it (and hopefully report feedback) and the community members who might join the effort.
Another concern that's been raised is that the Yum developers that DNF developers have been communicating with have primarily been the developers internal to Red Hat rather than the community contributors.

On the Fedora Wiki is a bulk of the DNF package manager information as it pertains to Fedora's implementation in the near-term.

Over at GitHub is more information like a glance at their initial plug-in API, Yum features being considered for dropping, etc.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. KDE's KWin Made Lots Of Progress In 4.11
  2. Ubuntu Announces Carrier Advisory Group
  3. Qt 5.1 Release Candidate 1 Has Arrived
  4. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  5. Subversion 1.8 Presents New Features
  6. LLVM 3.3 Officially Released
  7. LLVM/Clang Now Uses Loop Vectorizer At New Levels
  8. Intel GPU Driver Tries To Rip Out FBDEV Support
  9. Coreboot Doing AMD USB 3.0, Q35 QEMU Emulation
  10. VP9 Codec Now Enabled By Default In Chrome
  11. openSUSE 13.1 M2 Plays On PulseAudio 4.0
Latest Forum Talk
  1. The Wayland Situation: Facts About X vs. Wayland
  2. Planetary Annihilation Plans To Come To Linux
  3. Benchmarks Of NVIDIA's New Linux GPU Driver
  4. Intel GPU Driver Tries To Rip Out FBDEV Support
  5. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  6. Commodity Tips
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite