DNF (software)

DNF or Dandified YUM[3][4][5] is the next-generation version of the Yellowdog Updater, Modified (yum), a package manager for .rpm-based distributions. DNF was introduced in Fedora 18 in 2013,[6] it has been the default package manager since Fedora 22 in 2015,[7] Red Hat Enterprise Linux 8.[8], and OpenMandriva;[9] and also an alternative package manager for Mageia.

Dandified Yum
DNF running on Fedora 26
Developer(s)Red Hat
Initial release18 January 2012 (2012-01-18)[1]
Stable release
4.10.0 / 21 October 2021 (2021-10-21)[2]
Repository
Written inC, C++, Python
Operating systemLinux
PlatformRPM
Available inEnglish
TypePackage management system
LicenseGPLv2
Websiterpm-software-management.github.io

Perceived deficiencies of yum (which DNF is intended to address) include poor performance, high memory usage, and the slowness of its iterative dependency resolution.[10] DNF uses libsolv, an external dependency resolver.[10]

DNF performs package management tasks on top of RPM, and supporting libraries.

DNF was originally written in Python, but as of 2016 efforts are under way to port it to C and move most functionality from Python code into the new libdnf library.[11] 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.[12]

Adoption

DNF has been the default command-line package manager for Fedora since version 22, which was released in May 2015.[7] The libdnf library is used as a package backend in PackageKit,[12] which offers a graphical user interface (GUI). Later dnfdragora was developed for Fedora 27 as another alternative graphical front-end of DNF.[13][14] 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.[15]

Dependencies

libdnf

  • high-level API for DNF and underlying libraries
  • C, C++
  • LGPLv2+

libsolv

  • a free package dependency solver using a satisfiability algorithm
  • for solving packages and reading repositories
  • C
  • New BSD License

librepo

  • a library providing C and Python (libcURL like) API for downloading Linux repository metadata and packages
  • C
  • LGPLv2+

libcomps

  • libcomps is an alternative for yum.comps library, written in pure C, and has bindings for Python
  • C
  • GPLv2+

References

  1. "Tags · rpm-software-management/dnf · GitHub". GitHub DNF Repository. 2012-01-18. Retrieved 2022-02-26.
  2. "Tags · rpm-software-management/dnf · GitHub". GitHub DNF Repository. 2021-10-21. Retrieved 2022-02-26.
  3. "DNF". Fedora Project Wiki. Retrieved 2018-05-21.
  4. "What does DNF stand for". DNF User's FAQ. Retrieved 2018-05-21.
  5. "README.rst · rpm-software-management/dnf · GitHub". GitHub DNF Repository, commit 8174427421b995265c6297ebd64024ded099ecf0. Retrieved 2018-05-21.
  6. Byfield, Bruce. "Will DNF Replace Yum?". Linux Magazine. Retrieved 2015-05-28.
  7. Andrew (2015-05-26). "Fedora 22 Released, See What's New [Workstation]". WebUpd8. Retrieved 2015-05-28.
  8. Scott Matteson (2019-03-30). "What's new with Red Hat Enterprise Linux 8 and Red Hat Virtualization". TechRepublic. Retrieved 2019-09-24.
  9. "Switching to RPMv4". OpenMandriva. 2018-03-07. Retrieved 2022-04-15.
  10. Edge, Jake (2014-01-15). "DNF and Yum in Fedora". LWN.net. Retrieved 2015-03-29.
  11. Šilhan, Jan (2016-02-24). "DNF into C initiative started". DNF blog. Archived from the original on 2017-07-02. Retrieved 2017-07-05.
  12. Aleksandersen, Daniel (2017-07-05). "Use DNF rather than PackageKit on Fedora". Ctrl blog. Retrieved 2017-08-07.
  13. "Changes/Replace yumex-dnf with dnfdragora - Fedora Project Wiki". fedoraproject.org. Retrieved 2021-09-27.
  14. "F27 Self Contained Change: Replace Yumex-DNF with dnfdragora - devel - Fedora Mailing-Lists". lists.fedoraproject.org. Retrieved 2021-09-27.
  15. Larabel, Michael (2016-09-05). "Mageia To Offer DNF, But Will Keep Using URPMI By Default". Phoronix. Retrieved 2017-12-04.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.