DNF (software)
Package manager for Red Hat systems
From Wikipedia, the free encyclopedia
DNF (abbreviation for Dandified YUM)[7][8][9] is a package manager for Red Hat-based Linux distributions and derivatives. DNF was introduced in Fedora 18 in 2013 as a replacement for yum;[10] it has been the default package manager since Fedora 22 in 2015[11] and Red Hat Enterprise Linux 8 in 2019[12] and is also an alternative package manager for Mageia. DNF performs package management tasks on top of RPM, and supporting libraries.
| Dandified Yum | |
|---|---|
![]() | |
DNF5 running on Fedora 41 | |
| Developer | Fedora Project (Red Hat) |
| Initial release | 18 January 2012[1] |
| Stable release | |
| Written in | |
| Operating system | Linux, IBM AIX |
| Platform | RPM |
| Available in | English |
| Type | Package management system |
| License | GPLv2+ & LGPLv2.1+ & New BSD License |
| Website | rpm-software-management |
| Repository | https://github.com/rpm-software-management/dnf,[5] https://github.com/rpm-software-management/dnf5[6] |
Usage
The DNF package manager works similarly to other package managers.[13] Its core usage works very similarly to the Apt Package Manager, such as install, remove, and upgrade.[14][13]
Usage for basic command is as follows:[13]
sudo dnf list
sudo dnf search <pattern>
sudo dnf info <package_name>
sudo dnf install <package_name>
sudo dnf remove <package_name>
sudo dnf upgrade
sudo dnf distro-sync
History
Perceived deficiencies of yum (which DNF is intended to address) include poor performance, high memory usage, and the slowness of its iterative dependency resolution.[15] DNF uses libsolv, an external dependency resolver (developed by openSUSE).[15]
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].[16] In 2018, the DNF team announced the decision to move libdnf from C to C++.[17][18] libdnf is already used by PackageKit, a Linux 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]
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,[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 for Mageia 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]
