DNF5 is a command-line package manager that automates the process of installing, upgrading, configuring, and removing computer programs in a consistent manner.
It supports RPM packages, modulemd modules, and comps groups and environments.
As part of the DNF5 stack, libdnf is the package management library.
It was originally written to support the DNF
package manager, but gradually grew up into a versatile library.
You can now use libdnf to build custom tools that load repositories,
query packages, resolve dependencies, and install packages.
DNF5 is also powered with the libsolv library which provides an easy to use programming interface.
By using DNF5, you can work with the following artifacts:
RPM repositories (repomd)
RPM packages
Comps groups
Comps environments
Advisories (updateinfo, errata)
Modules (modulemd)
DNF5 is written in C++ and it can interface with the following programming languages:
C++ - fully supported.
Python 3 - fully supported.
Perl 5 - best effort.
Ruby - best effort.
Note, however, that DNF5 cannot yet interface with the following programming languages:
Go - does not work, we are looking for contributors.
C - not implemented, not a priority for any of our existing API users.
Installing DNF5
DNF5 is available since Fedora 38. To install the DNF5 package manager, use either of the following commands, depending on your Fedora release:
Note: dnf-nightly provides nightly builds for the entire DNF stack. Once you enable this repository you will start receiving updates for DNF, libdnf, and for the other packages of the stack.
Testing DNF5 obsoletes DNF
Optionally you can install DNF5 from these COPR repositories[^dnf5-testing][^dnf5-testing-nightly]. The packages are build using the copr option --rpmbuilds-with dnf5_obsoletes_dnf. By installing these packages DNF5 will be the default package manager in your system. You will still be able to use DNF running dnf4.
Packages from dnf5-testing are versioned following Fedora release pace and are updated every two weeks. Packages from dnf5-testing-nightly are built nightly.
The header files are documented because documentation is mainly generated from these files.
Contributing to the DNF5 project
For details about how to contribute to the DNF5 project, see CONTRIBUTING.md.
By contributing to the DNF5 project you agree with the Developer Certificate of Origin (DCO).
DCO contains a simple statement that you, as a contributor,
have the legal right to submit a contribution. For more details, see the DCO file.
All contributions to this project are licensed under LGPLv2.1+ or GPLv2+.
For more details, see the License section.
Reporting issues
To report an issue, use either of the following methods:
DNF5
DNF5 is a command-line package manager that automates the process of installing, upgrading, configuring, and removing computer programs in a consistent manner. It supports RPM packages, modulemd modules, and comps groups and environments.
As part of the DNF5 stack, libdnf is the package management library. It was originally written to support the DNF package manager, but gradually grew up into a versatile library. You can now use libdnf to build custom tools that load repositories, query packages, resolve dependencies, and install packages.
DNF5 is also powered with the libsolv library which provides an easy to use programming interface.
By using DNF5, you can work with the following artifacts:
DNF5 is written in C++ and it can interface with the following programming languages:
Note, however, that DNF5 cannot yet interface with the following programming languages:
Installing DNF5
DNF5 is available since Fedora 38. To install the DNF5 package manager, use either of the following commands, depending on your Fedora release:
sudo dnf copr enable rpmsoftwaremanagement/dnf-nightly && sudo dnf install dnf5
[^dnf-nightly]sudo dnf install dnf5
Note:
dnf-nightly
provides nightly builds for the entire DNF stack. Once you enable this repository you will start receiving updates for DNF, libdnf, and for the other packages of the stack.Testing DNF5 obsoletes DNF
Optionally you can install DNF5 from these COPR repositories[^dnf5-testing][^dnf5-testing-nightly]. The packages are build using the copr option
--rpmbuilds-with dnf5_obsoletes_dnf
. By installing these packages DNF5 will be the default package manager in your system. You will still be able to use DNF runningdnf4
.Packages from
dnf5-testing
are versioned following Fedora release pace and are updated every two weeks. Packages fromdnf5-testing-nightly
are built nightly.Documentation
Contributing to the DNF5 project
For details about how to contribute to the DNF5 project, see CONTRIBUTING.md.
Reporting issues
To report an issue, use either of the following methods:
Developing DNF5 by building and testing the code
For details about building and testing DNF5, see the Development environment setup section.
Translating
TBD
License
For more details about licenses, see COPYING.