The DNF package manager works similarly to other package managers.[13] Its core usage works very similarly to theApt Package Manager, such asinstall,remove, andupgrade.[14][13]
Perceived deficiencies of yum (which DNF is intended to address) include poor performance, high memory usage, and the slowness of its iterativedependency resolution.[15] DNF useslibsolv, an external dependency resolver (developed byopenSUSE).[15]
DNF was originally written inPython, but as of 2016[update], efforts were under way to port it toC and move most functionality from Python code into the new libdnf library[needs update].[16] In 2018, the DNF team announced the decision to move libdnf from C toC++.[17][18] libdnf is already used byPackageKit, aLinux distribution-agnostic package system abstraction library, even though the library doesn't have most of DNF's features.[19]
Since the launch of Fedora Linux 41, DNF5 is the new default packaging tool. This release features new performance enhancements, updated terminal output, and fully integrated modularity.[20]
DNF has been the default command-line package manager for Fedora since version 22, which was released in May 2015.[11] The libdnf library is used as a package backend inPackageKit,[19] which offers a graphical user interface (GUI). Later, dnfdragora was developed for Fedora 27 as another alternative graphical front-end of DNF.[21][22] DNF has also been available as an alternate package manager forMageia Linux since version 6 and may become the default sometime in the future.[23]
In Red Hat Enterprise Linux, and by extension, AlmaLinux and Rocky Linux,yum is an alias for dnf.[12]
^Mach, Daniel; Mracek, Jaroslav (22 March 2018)."Announcing DNF 3 development".DNF: A Blog of The DNF Team.Archived from the original on September 18, 2018. Retrieved8 August 2023.