1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Memory
  5. Motherboards
  6. Processors
  7. Software
  8. Storage
  9. Operating Systems


Facebook RSS Twitter Twitter Google Plus


Phoronix Test Suite

OpenBenchmarking.org

DNF: The New Package Manager Of Fedora 18

Fedora

Published on 22 June 2012 09:35 AM EDT
Written by Michael Larabel in Fedora
8 Comments

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.

About The Author
Michael Larabel is the principal author of Phoronix.com and founded the web-site in 2004 with a focus on enriching the Linux hardware experience and being the largest web-site devoted to Linux hardware reviews, particularly for products relevant to Linux gamers and enthusiasts but also commonly reviewing servers/workstations and embedded Linux devices. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics hardware drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated testing software. He can be followed via and or contacted via .
Latest Articles & Reviews
  1. Samsung 850 EVO SSD Linux Benchmarks
  2. Kubuntu 15.04 Is Turning Out Quite Nice, Good Way To Try Out The Latest KDE
  3. 5-Way Linux Distribution Comparison On The Core i3 NUC
  4. OCZ ARC 100 Linux SSD Benchmarks
  5. Lenovo ThinkPad X1 Carbon Works Great As A Linux Ultrabook
  6. Transcend SSD370 256GB
Latest Linux News
  1. Confirmed: Vulkan Is The Next-Gen Graphics API
  2. Kdenlive Ported To Qt5/KF5, Coming To KDE Applications 15.04
  3. HTC & Valve Partnered Up For The Steam VR Headset
  4. 8cc: A Small C11 Compiler
  5. Not Everyone Likes The Possible "VULKAN" Name For Next-Gen OpenGL
  6. The Binary Blobs Making Up Coreboot
  7. Linux 4.0 & LLVM vs. GCC Yielded Much Interest This Month
  8. XBMC/Kodi 15.0 Alpha 1 Released
  9. Xfce 4.12 Released After Nearly Three Years Of Work
  10. The Khronos Group Filed A Trademark On "Vulkan" API
Most Viewed News This Week
  1. Screenshots Of The GNOME 3.16 Changes
  2. More Proof That Allwinner Is Violating The GPL
  3. The Tremendous Features Of Fedora 22
  4. Krita 2.9 Released, Their Biggest Release Ever
  5. A Single UEFI Executable With The Linux Kernel, Initrd & Command Line
  6. Linux 4.0 Doesn't Have The Weirdest Codename
  7. Canonical Comes Up With Its Own FUSE Filesystem For Linux Containers
  8. Firefox 36 Brings Full HTTP/2 Support
%%CLICK_URL_UNESC%%