DNF (software)

Last updated
Dandified Yum
Developer(s) Red Hat
Initial release18 January 2012;12 years ago (2012-01-18) [1]
Stable release
4.19.2 [2]  &
5.1.17 [3] / 30 March 2024;5 days ago (2024-03-30) [2]  &
3 April 2024;1 day ago (2024-04-03) [3]
Repository
Written in C, C++, Python
Operating system Linux, IBM AIX
Platform RPM
Available inEnglish
Type Package management system
License GPLv2+ & LGPLv2.1+ & New BSD License
Website rpm-software-management.github.io

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

Contents

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

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

DNF was originally written in Python, but as of 2016 efforts were under way to port it to C and move most functionality from Python code into the new libdnf library. [12] In 2018, the DNF team announced the decision to move libdnf from C to C++. [13] [14] 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. [15]

Meanwhile, DNF5 is gearing up for an official launch in Fedora Linux 41. This versatile C++ package manager for RPM packages, modules, and comps groups uses libdnf and libsolv, supports Python 3, and is accessible in Fedora 38+. [16]

Adoption

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

In Red Hat Enterprise Linux, and by extension, AlmaLinux and Rocky Linux, yum is an alias for dnf. [9]

Dependencies

libdnf

libsolv

librepo

libcomps

Related Research Articles

<span class="mw-page-title-main">Mandriva Linux</span> Linux distribution

Mandriva Linux is a discontinued Linux distribution developed by Mandriva S.A.

<span class="mw-page-title-main">Red Hat Linux</span> Linux distribution

Red Hat Linux was a widely used commercial open-source Linux distribution created by Red Hat until its discontinuation in 2004.

yum (software) Free and open-source command-line package management utility

The Yellowdog Updater Modified (YUM) is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.

urpmi is a package management tool for installing, removing, updating and querying software packages of local or remote (networked) media. It wraps around the RPM Package Manager in the role of a smart package manager. It uses repositories and will resolve dependencies so that the user will not suffer from dependency hell that can happen when using RPM directly. It works with official sources from Mandriva or unofficial sources such as those from the Penguin Liberation Front. It has a graphical front-end: Rpmdrake.

virt-manager Virtualisation software

virt-manager is a desktop virtual machine monitor primarily developed by Red Hat.

<span class="mw-page-title-main">Metalink</span> File format that describes one or more computer files available for download

Metalink is an extensible metadata file format that describes one or more computer files available for download. It specifies files appropriate for the user's language and operating system; facilitates file verification and recovery from data corruption; and lists alternate download sources.

<span class="mw-page-title-main">Fedora Linux</span> Linux distribution by Fedora Project

Fedora Linux is a Linux distribution developed by the Fedora Project. It was originally developed in 2003 as a continuation of the Red Hat Linux project. It contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. It is now the upstream source for CentOS Stream and Red Hat Enterprise Linux.

<span class="mw-page-title-main">Liberation fonts</span> Open-source font superfamily

Liberation is the collective name of four TrueType font families: Liberation Sans, Liberation Sans Narrow, Liberation Serif, and Liberation Mono. These fonts are metrically compatible with the most popular fonts on the Microsoft Windows operating system and the Microsoft Office software package, for which Liberation is intended as a free substitute. The fonts are default in LibreOffice.

<span class="mw-page-title-main">PackageKit</span>

PackageKit is a free and open-source suite of software applications designed to provide a consistent and high-level front end for a number of different package management systems. PackageKit was created by Richard Hughes in 2007, and first introduced into an operating system as a default application in May 2008 with the release of Fedora 9.

<span class="mw-page-title-main">RPM Package Manager</span> Package management system

RPM Package Manager (RPM) is a free and open-source package management system. The name RPM refers to the .rpm file format and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.

<span class="mw-page-title-main">WeeChat</span> IRC client

WeeChat is a free and open-source Internet Relay Chat client that is designed to be light and fast. It is released under the terms of the GNU GPL-3.0-or-later and has been developed since 2003.

<span class="mw-page-title-main">KVIrc</span> IRC Client

KVIrc is a graphical IRC client for Linux, Unix, Mac OS and Windows. The name is an acronym of K Visual IRC in which the K stands for a dependency to KDE, which became optional from version 2.0.0. The software is based on the Qt framework and its code is released under a modified GNU General Public License.

Fedora Linux is a popular Linux distribution developed by the Fedora Project. Fedora attempts to maintain a six-month release schedule, offering new versions in May and November, although some releases have experienced minor delays.

<span class="mw-page-title-main">TagLib</span> Software library for reading and editing audio metadata

TagLib is a free library for reading and editing metadata embedded into audio files.

dracut (software) Software to automate the Linux boot process

Dracut is a set of tools that provide enhanced functionality for automating the Linux boot process. The tool named dracut is used to create a Linux boot image (initramfs) by copying tools and files from an installed system and combining it with the Dracut framework, which is usually found in /usr/lib/dracut/modules.d.

<span class="mw-page-title-main">OpenMandriva Lx</span> Independent Linux distribution

OpenMandriva Lx is a general-purpose Linux distribution maintained by the OpenMandriva Association for x86 (32/64-bit) and ARM computers. It is a community-supported continuation of Mandriva Linux, which was active from 1998 until 2011. OpenMandriva is offered in a stable release edition, and a rolling release edition named Rome. It uses the RPM Package Manager and uses KDE Plasma as its default desktop environment.

<span class="mw-page-title-main">Budgie (desktop environment)</span> Desktop environment for Unix-like operating systems

Budgie is an independent, free and open-source desktop environment for Linux and other Unix-like operating systems that targets the desktop metaphor. Budgie is developed by the Buddies of Budgie organization, which is composed of a team of contributors from Linux distributions such as Fedora, Debian, and Arch Linux. Its design emphasizes simplicity, minimalism, and elegance, while providing the means to extend or customize the desktop in various ways. Unlike desktop environments like Cinnamon, Budgie does not have a reference platform, and all distributions that ship Budgie are recommended to set defaults that best fit their desired user experience.

qutebrowser Free keyboard-focused web browser with a minimal GUI

qutebrowser is a QtWebEngine web browser for Linux, Windows, and macOS operating systems with Vim-style key bindings and a minimal GUI. It is keyboard-driven and is inspired by similar software such as Vimperator and dwb. It uses DuckDuckGo as the default search engine. qutebrowser is included in the native repositories of Linux distributions such as Fedora and Arch Linux. qutebrowser is developed by Florian Bruhin, for which he received a CH Open Source award in 2016.

<span class="mw-page-title-main">PipeWire</span> Media processing server for Linux

PipeWire is a server for handling audio, video streams, and hardware on Linux. It was created by Wim Taymans at Red Hat. It handles multimedia routing and pipeline processing.

References

  1. 0.6.4-1 for rpm-software-management/dnf dnf on GitHub
  2. 1 2 Tags · rpm-software-management/dnf on GitHub
  3. 1 2 Tags · rpm-software-management/dnf5 on GitHub
  4. "DNF". Fedora Project Wiki. Archived from the original on 2018-10-14. Retrieved 2018-05-21.
  5. "What does DNF stand for". DNF User's FAQ. Archived from the original on 2018-10-14. Retrieved 2018-05-21.
  6. README.rst · rpm-software-management/dnf on GitHub
  7. Byfield, Bruce. "Will DNF Replace Yum?". Linux Magazine . Archived from the original on 2015-09-26. Retrieved 2015-05-28.
  8. 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.
  9. 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.
  10. "Switching to RPMv4". OpenMandriva. 2018-03-07. Archived from the original on 2022-06-26. Retrieved 2022-04-15.
  11. 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.
  12. Šilhan, Jan (2016-02-24). "DNF into C initiative started". DNF blog. Archived from the original on 2017-07-02. Retrieved 2017-07-05.
  13. 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.
  14. 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.
  15. 1 2 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.
  16. "Changes/ReplaceDnfWithDnf5". Archived from the original on 2023-11-12. Retrieved 2023-11-12.
  17. "Changes/Replace yumex-dnf with dnfdragora - Fedora Project Wiki". fedoraproject.org. Archived from the original on 2021-09-27. Retrieved 2021-09-27.
  18. "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.
  19. 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.