This section needs expansion. You can help by adding to it. (December 2024)
Perceived deficiencies of yum (which DNF is intended to address) include poor performance, high memory usage, and the slowness of its iterative dependency resolution.[13] DNF uses libsolv, an external dependency resolver.[13]
DNF was originally written in Python, but as of 2016[update] efforts were under way to port it to C and move most functionality from Python code into the new libdnf library[needs update].[14] In 2018, the DNF team announced the decision to move libdnf from C to C++.[15][16] libdnf is already used by PackageKit, a Linux distribution-agnostic package system abstraction library, even though the library does not have most of DNF's features.[17]
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.[18]
Adoption
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 in PackageKit,[17] which offers a graphical user interface (GUI). Later dnfdragora was developed for Fedora 27 as another alternative graphical front-end of DNF.[19][20] DNF has also been available as an alternate package manager for Mageia Linux since version 6 and may become the default sometime in the future.[21]
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. Retrieved 8 August 2023.