DNF (software)
| Dandified Yum | |
|---|---|
DNF5 running on Fedora 41 | |
| Developer | Fedora Project (Red Hat) |
| 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] |
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.
Usage
[edit]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
[edit]This section needs expansion. You can help by adding missing information. (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.[15] DNF uses libsolv, an external dependency resolver (developed by openSUSE).[15]
Developed from 2011 onwards at Red Hat by developer Aleš Kozumplík, who had problems with the Anaconda installer and the YUM package manager. DNF got approved for Fedora 18 and was released for testing in January 2013. The project was supposed to be able to replace YUM with an alternative that would have a cleaner code base and use a different dependency-resolution architecture. DNF used the library `hawkey` to communicate with a dependency-resolution library called `libsolv`, which was first written for openSUSE.[16]
It was decided by the Fedora Engineering Steering Committee to use DNF as the new default package manager for Fedora 22 in 2014. In May 2015, a new release of Fedora (22) switched from YUM to DNF as their package-management tool. DNF continued to support many of the YUM commands without losing support for command-line usage, instead using the tools hawkey and libsolv for dependency resolution.[17][18]
DNF was originally written in Python, but in 2016, efforts were under way to port it to C and move most functionality from Python code into the new libdnf library[needs update].[19] In 2018, the DNF team announced the decision to move libdnf from C to C++.[20][21] 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.[22]
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.[23]
Adoption
[edit]DNF has been the default package manager for Fedora since Fedora 22, released in May 2015.[11] The libdnf library is used as a package backend in PackageKit, which provides a package-management API used by graphical software-management tools. dnfdragora was developed as a graphical front-end for DNF and was introduced in Fedora 27..[24][25] DNF has been available as an alternative package manager for Mageia Linux since Mageia 6.[26]
In Red Hat Enterprise Linux 8 and 9, and in distributions such as AlmaLinux and Rocky Linux based on them, yum is an alias for dnf.[12]
References
[edit]- ↑ 0.6.4-1 for rpm-software-management/dnf dnf on GitHub
- ↑ "5.4.5.0". 14 September 2026. Retrieved 15 September 2026.
- 1 2 3 4 "The dnf Open Source Project on Open Hub: Languages Page". Open Hub. Retrieved 2 May 2024.
- 1 2 3 4 5 6 7 8 9 "The dnf5 Open Source Project on Open Hub: Languages Page". Open Hub. Retrieved 2 May 2024.
- ↑ "GitHub - rpm-software-management/dnf: Package manager based on libdnf and libsolv. Replaces YUM". GitHub. Retrieved 6 October 2016.
- ↑ "GitHub - rpm-software-management/dnf5: Next-generation RPM package management system". GitHub. Retrieved 11 March 2023.
- ↑ "DNF". Fedora Project Wiki. Archived from the original on 2018-10-14. Retrieved 2018-05-21.
- ↑ "What does DNF stand for". DNF User's FAQ. Archived from the original on 2018-10-14. Retrieved 2018-05-21.
- ↑ README.rst · rpm-software-management/dnf on GitHub
- ↑ Byfield, Bruce. "Will DNF Replace Yum?". Linux Magazine. Archived from the original on 2015-09-26. Retrieved 2015-05-28.
- 1 2 "Fedora 22 Released, See What's New [Workstation]". WebUpd8. 2015-05-26. Archived from the original on 2015-09-25. Retrieved 2015-05-28.
- 1 2 Matteson, Scott (2019-03-30). "What's new with Red Hat Enterprise Linux 8 and Red Hat Virtualization". TechRepublic. Archived from the original on 2019-09-24. Retrieved 2019-09-24.
- 1 2 3 "Dnf Package Manager - Documentation". docs.rockylinux.org. Retrieved 2025-11-24.
- ↑ Djere, Rex (2025-10-23). "The Histories, Similarities and Differences of the APT and DNF GNU/Linux Package Managers". Djere.com. Retrieved 2025-11-24.
- 1 2 Edge, Jake (2014-01-15). "DNF and Yum in Fedora". LWN.net. Archived from the original on 2015-09-30. Retrieved 2015-03-29.
- ↑ "Fedora and DNF". LWN.net. 2 July 2014. Retrieved 25 September 2026.
- ↑ "Fedora and DNF". LWN.net. 2 July 2014. Retrieved 25 September 2026.
- ↑ "Fedora 22 released and available now". Fedora Magazine. 26 May 2015. Retrieved 25 September 2026.
- ↑ Šilhan, Jan (2016-02-24). "DNF into C initiative started". DNF blog. Archived from the original on 2017-07-02. Retrieved 2017-07-05.
- ↑ 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.
- ↑ Edge, Jake (28 March 2018). "DNF 3: better performance and a move to C++". LWN.net. Archived from the original on October 14, 2018. Retrieved 8 August 2023.
- ↑ Aleksandersen, Daniel (2017-07-05). "Use DNF rather than PackageKit on Fedora". Ctrl blog. Archived from the original on 2017-08-07. Retrieved 2017-08-07.
- ↑ "Changes/ReplaceDnfWithDnf5". Archived from the original on 2023-11-12. Retrieved 2023-11-12.
- ↑ "Changes/Replace yumex-dnf with dnfdragora - Fedora Project Wiki". fedoraproject.org. Archived from the original on 2021-09-27. Retrieved 2021-09-27.
- ↑ "F27 Self Contained Change: Replace Yumex-DNF with dnfdragora - devel - Fedora Mailing-Lists". lists.fedoraproject.org. Archived from the original on 2021-09-27. Retrieved 2021-09-27.
- ↑ Larabel, Michael (2016-09-05). "Mageia To Offer DNF, But Will Keep Using URPMI By Default". Phoronix. Archived from the original on 2017-12-06. Retrieved 2017-12-04.