DNF (software)
| Company type | Software |
|---|---|
| Industry | Software, Package management |
| Founded | 2013 |
| Founder | Red Hat |
| Products | Package manager software |
| Owner | Red Hat |
DNF—an abbreviation for Dandified YUM—is a package manager created by Red Hat tailored for Linux distributions and derivatives based on Red Hat. It was first introduced in Fedora 18 in 2013 to replace the older yum system. By the release of Fedora 22 in 2015, DNF had become the standard package manager, and it was later adopted as the default in Red Hat Enterprise Linux 8 in 2019. Besides Fedora and RHEL, DNF is also available as an alternative package management tool for Mageia. It operates by handling packages through the RPM framework and its associated libraries.
History
DNF was developed to overcome several limitations found in yum, such as suboptimal speed, excessive memory consumption, and inefficient iterative dependency resolution. To address these issues, DNF utilizes libsolv, an external library dedicated to dependency resolution.
Initially implemented in Python, a transition began around 2016 to rewrite DNF in C, consolidating most of its capabilities into a new library named libdnf. In 2018, the development team opted to convert libdnf from C to C++, with the goal of enhancing both performance and maintainability. While libdnf serves as the backend for PackageKit, a distribution-independent package management abstraction layer, it currently does not encompass all of DNF’s functionalities.
Starting with Fedora Linux 41, DNF5 replaced its predecessor as the default packaging utility, introducing improved performance metrics, refreshed terminal interface output, and seamless modularity integration.
Adoption
Since Fedora version 22 (May 2015), DNF has been the primary command-line package manager. Its underlying library, libdnf, is embedded within PackageKit, enabling graphical user interface (GUI) support. Fedora 27 saw the introduction of dnfdragora, an alternative GUI front-end for DNF. In Mageia Linux version 6 and onward, DNF is available as an optional package manager with considerations for becoming the default choice. Within Red Hat Enterprise Linux and its derivatives such as AlmaLinux and Rocky Linux, the yum command acts as an alias redirecting to dnf functionality.