Need help with dnf?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

855 Stars 321 Forks GNU General Public License v2.0 9.4K Commits 23 Opened issues


Package manager based on libdnf and libsolv. Replaces YUM.

Services available


Need anything else?

Contributors list

.. image:: :alt: Translation status :target:

Dandified YUM

.. image::

Dandified YUM (DNF) is the next upcoming major version of

. It does package management using
_ and
_ libraries. For metadata handling and package downloads it utilizes
. To process and effectively handle the comps data it uses



DNF and all its dependencies are available in Fedora 18 and later, including the rawhide Fedora.

Optionally you can use repositories with DNF nightly builds for last 2 stable Fedora versions available at copr://rpmsoftwaremanagement/dnf-nightly. You can enable the repository e.g. using::

dnf copr enable rpmsoftwaremanagement/dnf-nightly

Then install DNF typing::

sudo yum install dnf

In other RPM-based distributions you need to build all the components from their sources.


Building from source

All commands should be run from the DNF git checkout directory.

To install the build dependencies::

sudo dnf builddep dnf.spec

To build DNF::

mkdir build;
pushd build;
cmake ..; # add '-DPYTHON_DESIRED="3"' option for Python 3 build

To run DNF when compiled for Python2::

PYTHONPATH=`readlink -f .` bin/dnf-2 

To run DNF when compiled for Python3::

PYTHONPATH=`readlink -f .` bin/dnf-3 

If you want to build the manpages, use the option

with cmake.

Man pages will be located in

and can be read with
man -l
, e.g::
man -l build/doc/dnf.8


Building and installing rpm

From the DNF git checkout directory::

$ tito build --test --rpm
# dnf install /tmp/tito/noarch/*


Running tests

From the DNF git checkout directory::

mkdir build;
pushd build;
cmake .. && make ARGS="-V" test;



Here's the most direct way to get your work merged into the project.

  1. Fork the project

    . Clone down your fork

    . Implement your feature or bug fix and commit changes

    . If the change fixes a bug at
    Red Hat bugzilla 
    _, or if it is important to the end user, add the following block to the commit message::

    = changelog = msg: message to be included in the changelog type: one of: bugfix/enhancement/security (this field is required when message is present) resolves: URLs to bugs or issues resolved by this commit (can be specified multiple times) related: URLs to any related bugs or issues (can be specified multiple times)

  • For example::

    = changelog = msg: Verify GPG signatures when running dnf-automatic type: bugfix resolves:

  • For your convenience, you can also use git commit template by running the following command in the top-level directory of this project::

    git config commit.template ./.git-commit-template

. In special commit add your name and email under
section in
authors file 
_ as a reward for your generosity

. Push the branch up to your fork

. Send a pull request for your branch

Please, do not create the pull requests with translation (.po) files improvements. Fix the translation on

Fedora Weblate 
_ instead.



The DNF package distribution contains man pages, dnf(8) and dnf.conf(8). It is also possible to

read the DNF documentation 
_ online, the page includes API documentation. There's also a
_ meant for contributors to DNF and related projects.


Bug reporting etc.

Please report discovered bugs to the

Red Hat bugzilla 
_ following this
. If you planned to propose the patch in the report, consider

Freenode's irc channel

is meant for discussions related to both YUM and DNF. Questions should be asked there, issues discussed. Remember:
is not a support channel and prior research is expected from the questioner.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.