Monthly Archives: December 2013

DNF and Fedora 20

(This article is an invitation for the regular Fedora users to start using DNF as their main package manager. If you are near Fedora development, read the Development discussions list or visit this blog then the article is not going to reveal much new, sorry.)



Have you ever tried Yum to install or manage your software and got disappointed? Was it ever so slooow? Or have you tried to write a Yum extension, drowned in the API, failed? We have something different to offer now: DNF—the next generation of package management.

DNF is a package manager that was forked from Yum in early 2012 with the goal of building something that looks and feels like Yum from the command line but provides better experience for people interested in writing plugins and extensions for DNF.

The first Fedora where we shipped was F18 the last winter. Many Yum commands were missing and the early adopters got surprised a lot. That is no more the case with the version shipped in F20 (0.4.9) as DNF gets more stable and feature-full, pretty much everything known from Yum works in DNF. Give DNF a chance today, simply by having it installed (‘yum install dnf’) and from then on replacing the word ‘yum’ with the word ‘dnf’ each time you need to do some packaging, e.g.:

dnf install thunderbird

or:

dnf upgrade -y

It is true that DNF will sometimes handle the command lines arguments or the depsolving puzzle or similar things differently. To help the users transition smoothly and know about any possible speed bumps ahead we have a document that sums these things up.

To compensate for your trouble we offer comfort and speed: DNF installs a system timer that makes sure the package metadata are up to date all the time. So a sudden invocation of DNF from shell doesn’t take two minutes just to check the remote repositories for package updates but instead starts on the job immediately. We also use a very solid depsolver (developed and used by SUSE) under the hood. The early adopters report great speedups of the depsolving phase and our measurements indicate it treats the memory more economically.

To put our money where our mouth is we use DNF daily to update and modify our systems and haven’t had the software installation broken yet. During the autumn we integrated DNF within Anaconda so it is now possible to bootstrap the system without using Yum at all. We listened to the early users and gave them the known Yum goodies like full history support and parallel download.

What’s happening in the future? We’ll start shipping core DNF plugins soon, they will provide additional features that people miss from Yum but that quite don’t belong in the core DNF. Developers should check out our growing API. The Anaconda integration needs some fixes and polishing. And then there’s the feedback you’re going to give us after trying out DNF in F20 that we have to process and implement. The master plan of course is to give people everything they want from Yum and much more in DNF, and when Fedora 22 comes pronounce Yum dead and call DNF the new Yum!

DNF 0.4.9 Released

Hi! The 0.4.9 has just been released, and the build is already on its way to Fedora 20 testing and release notes are online.

What’s new? Plenty! We finally support plugins. The interface looks poor so far as we rushed to get the release out, but it already can be used to implement a big HALT when a non-root tries to run an RPMDB-changing command (like dnf upgrade).

Doing history rollback is supported again. So is printing out just the installed packages selected by user. Can come in handy when moving to Fedora 20, no?

Another addition we were often asked for was a way to support replacing a package with a conflicting package without disturbing any packages depending on these. This DNF version supplies the --allowerasing switch to facilitate just that.

On top of that a couple of bugs and a couple of API extensions. The release notes mention them all.