dnf is a package manager based on yum and libsolv
Python Other
Latest commit e4c6d33 Feb 20, 2017 @jsilhan jsilhan committed with DNF Bot cosmetic: i18n: rewording of 'Login user' (RhBug:1424939)
Closes: #743
Approved by: MichaelMraka

README.rst

Dandified Yum

https://raw.githubusercontent.com/rpm-software-management/dnf/gh-pages/logos/DNF_logo.png

Dandified Yum (DNF) is the next upcoming major version of Yum. It does package management using RPM, libsolv and hawkey libraries. For metadata handling and package downloads it utilizes librepo. To process and effectively handle the comps data it uses libcomps.

Installing

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 dependancies:

sudo dnf builddep dnf.spec

To build DNF:

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

To run DNF when compiled for Python2:

PYTHONPATH=`readlink -f .` bin/dnf-2 <arguments>

To run DNF when compiled for Python3:

PYTHONPATH=`readlink -f .` bin/dnf-3 <arguments>

If you want to build the manpages, use the option -DWITH_MAN=0 with cmake.

Man pages will be located in build/doc 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:

cmake .
./package/build-test-rpm
sudo rpm -i ~/rpmbuild/RPMS/noarch/dnf-<version>-<release>.noarch.rpm

Running tests

From the DNF git checkout directory:

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

Contribution

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

  1. Fork the project
  2. Clone down your fork
  3. Implement your feature or bug fix and commit changes
  4. If you reported a bug or you know it fixes existing bug at Red Hat bugzilla, append (RhBug:<bug_id>) to your commit message
  5. In special commit add your name and email under DNF CONTRIBUTORS section in authors file as a reward for your generosity
  6. Push the branch up to your fork
  7. Send a pull request for your branch

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

Documentation

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 wiki meant for contributors to DNF and related projects.

Bug reporting etc.

Please report discovered bugs to the Red Hat bugzilla following this guide. If you planned to propose the patch in the report, consider Contribution instead.

Freenode's irc channel #yum is meant for discussions related to both Yum and DNF. Questions should be asked there, issues discussed. Remember: #yum is not a support channel and prior research is expected from the questioner.