HOME

TheInfoList



OR:

DNF or Dandified YUM is the next-generation version of the
Yellowdog Updater, Modified The Yellowdog Updater, Modified (YUM) is a free and open-source command-line A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provid ...
(yum), a
package manager A package manager or package-management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer in a consistent manner. A package manager deals wi ...
for
.rpm RPM Package Manager (RPM) (originally Red Hat Package Manager, now a recursive acronym) is a free and open-source package management system. The name RPM refers to the file format and the package manager program itself. RPM was intended primaril ...
-based
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
distributions. DNF was introduced in Fedora 18 in 2013, it has been the default package manager since Fedora 22 in 2015,
Red Hat Enterprise Linux Red Hat Enterprise Linux (RHEL) is a commercial open-source Linux distribution developed by Red Hat for the commercial market. Red Hat Enterprise Linux is released in server versions for x86-64, Power ISA, ARM64, and IBM Z and a desktop version ...
8., and
OpenMandriva OpenMandriva Lx is a Linux distribution forked from Mandriva Linux. It is maintained by the OpenMandriva Association. History Origin of the distribution OpenMandriva Lx is a community Linux distribution. Originally an offering of Mandriva Linu ...
; and also an alternative package manager for
Mageia Mageia is a Linux-based operating system, distributed as free and open source software. It was forked from the Mandriva Linux distribution. The Greek term () means enchantment, fascination, glamour, wizardry. The first release of the software ...
. Perceived deficiencies of yum (which DNF is intended to address) include poor performance, high memory usage, and the slowness of its iterative
dependency resolution In computer science, a topological sort or topological ordering of a directed graph is a linear ordering of its vertices such that for every directed edge ''uv'' from vertex ''u'' to vertex ''v'', ''u'' comes before ''v'' in the ordering. For ins ...
. DNF uses libsolv, an external dependency resolver. DNF performs package management tasks on top of
RPM Revolutions per minute (abbreviated rpm, RPM, rev/min, r/min, or with the notation min−1) is a unit of rotational speed or rotational frequency for rotating machines. Standards ISO 80000-3:2019 defines a unit of rotation as the dimensionl ...
, and supporting libraries. DNF was originally written in
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
, but efforts are under way to port it to C and move most functionality from Python code into the new libdnf library. libdnf is already used by
PackageKit 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 intro ...
, a
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
-agnostic package system abstraction library, even though the library does not have most of DNF's features.


Adoption

DNF has been the default command-line package manager for Fedora since version 22, which was released in May 2015. The libdnf library is used as a package backend in
PackageKit 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 intro ...
, which offers a graphical user interface (
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
). Later dnfdragora was developed for Fedora 27 as another alternative graphical front-end of DNF. DNF has also been available as an alternate package manager for
Mageia Mageia is a Linux-based operating system, distributed as free and open source software. It was forked from the Mandriva Linux distribution. The Greek term () means enchantment, fascination, glamour, wizardry. The first release of the software ...
Linux since version 6 and may become the default sometime in the future.


Dependencies


libdnf

* high-level API for DNF and underlying libraries * C,
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
* LGPLv2+


libsolv

* a free package dependency solver using a satisfiability algorithm for solving packages and reading repositories * C *
New BSD License BSD licenses are a family of permissive free software licenses, imposing minimal restrictions on the use and distribution of covered software. This is in contrast to copyleft licenses, which have share-alike requirements. The original BSD lice ...


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 Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
* C *
GPLv2+ The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...


References


External links

* Fedora Project Linux package management-related software Red Hat software {{Free-software-stub