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. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  2. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  3. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
  4. AMD Radeon Gallium3D More Competitive With Catalyst On Linux
Latest Software Articles
  1. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  2. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  3. F2FS File-System Shows Regressions On Linux 3.10
  4. Previewing The Radeon Gallium3D Shader Optimizations
Latest Linux News
  1. DNF Still Advancing As Experimental Yum For Fedora
  2. Logitech Begins Supporting Linux Users
  3. Modern Intel Gallium3D Driver Still Being Toyed With
  4. Linux 3.10 Kernel Benchmarks On A Core i7 Laptop
  5. GCC 4.8.1 Compiler Due To Be Out Next Week
  6. Linux 3.10 Kernel Benchmarks For Intel Ivy Bridge
  7. Linux's "Ondemand" Governor Is No Longer Fit
  8. Firefox 22 Beta Enables WebRTC Support
  9. OpenSUSE 13.1 Milestone 1 Released
  10. DRM Graphics Driver Comes For Dove/Cubox
  11. JADE: An LLVM-Based Video Decoder For MPEG RVC
Latest Forum Talk
  1. Linux's "Ondemand" Governor Is No...
  2. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  3. X3: Albion Prelude Released For Linux Gamers
  4. DNF Still Advancing As Experimental Yum For Fedora
  5. Modern Intel Gallium3D Driver Still Being Toyed...
  6. Greater Radeon Gallium3D Shader Optimization Tests
  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