Generated by GPT-5-mini| DNF (software) | |
|---|---|
| Name | DNF |
| Developer | Fedora Project, Red Hat |
| Released | 2015 |
| Programming language | Python, C, C++ |
| Operating system | Fedora, Red Hat Enterprise Linux, CentOS, AlmaLinux, Rocky Linux |
| License | GNU General Public License |
DNF (software) is a package manager for RPM-based Linux distributions designed to manage software installation, update, and removal while resolving dependency relationships automatically. It succeeds Yellowdog Updater, Modified in the Fedora Project and Red Hat Enterprise Linux ecosystems, integrating with system tools and services to provide transactional upgrades, plugin extensibility, and performance improvements. DNF is used across multiple distributions and in enterprise environments for automated provisioning, continuous integration, and system maintenance.
DNF originated to address dependency solving, modularity, and maintainability concerns raised in Fedora Project and Red Hat Enterprise Linux development discussions involving projects such as Anaconda (installer), Kickstart (software), PackageKit, and Koji (build system). It provides a programmatic API used by orchestration tools like Ansible (software), Puppet (software), Chef (software), and SaltStack, and integrates with system management suites such as Red Hat Satellite and SUSE Manager. DNF's design draws on concepts and prior implementations from YUM ecosystems and interacts with repository metadata produced by build systems like Koji (build system) and openSUSE Build Service.
Development of DNF began within the Fedora Project and was led by contributors from Red Hat and independent developers active in Fedora Magazine discussions and FOSDEM tracks. Early milestones included reimplementation of core features formerly in Yellowdog Updater, Modified to use a new dependency solver and a modular Python API referenced by PackageKit maintainers and GNOME Software authors. Major releases aligned with Fedora release cycles and compatibility work for Red Hat Enterprise Linux backports, while community governance and contributions have come from participants in events like Red Hat Summit and Linux Plumbers Conference.
DNF's architecture separates the high-level command interface, a librpm-backed transaction layer, and a dependency resolver layer which can use libraries like libsolv from the openSUSE ecosystem. Components communicate with the RPM Package Manager database and with repository metadata formats influenced by repodata conventions. Features include plugin support similar to YUM Plugins extensions, a stable Python API consumed by tools such as Ansible (software) and PackageKit, delta RPM handling inspired by presto (software), modularity stream support analogous to Module Streams in CentOS Stream, and support for signing and verification tied to GnuPG workflows and OpenSSL stacks.
DNF exposes commands for installing, upgrading, removing, and querying packages used by administrators and automation systems in contexts like Kickstart (software) provisioning or Cobbler (software) workflows. Common subcommands mirror those found in prior tools, enabling compatibility with scripts referencing yum-style verbs while adding options for transaction history inspection and rollback-like behaviors informed by rpm-ostree practices. Admins invoke DNF in shell environments managed by tools like systemd and may combine it with configuration management from Puppet (software) or Chef (software). Output formats can integrate with monitoring and logging systems such as Nagios or Prometheus exporters via wrapper scripts.
DNF works with RPM-format packages produced by build infrastructures like Koji (build system), Open Build Service, and distribution mirrors synchronized through rsync or MirrorManager. It consumes repository metadata conforming to standards used by Fedora Project and Red Hat Enterprise Linux, supports multiple repository configuration files consistent with yum.conf conventions, and can handle repository priorities comparable to yum-plugin-priorities mechanisms. Repository signing and trust policies integrate with GnuPG keyrings and organizational provisioning systems such as Red Hat Satellite and Spacewalk (software).
DNF emphasizes improved dependency resolution performance via integration with solvers like libsolv and optimized algorithms developed by contributors associated with openSUSE and Fedora Project. Security features include package signature verification based on GnuPG, enforcement of policy from SELinux, and auditing hooks compatible with auditd and compliance tooling like OpenSCAP. Transaction handling leverages RPM's transaction capabilities and supports atomic-like behavior for package sets informed by practices in rpm-ostree and container image layering used by Podman and Docker (software).
DNF is the default package manager in recent releases of Fedora, and has been adopted or backported into enterprise and community distributions including Red Hat Enterprise Linux, CentOS Stream, AlmaLinux, Rocky Linux, and various spins and derivatives. Integration work has connected DNF to desktop ecosystems such as GNOME and KDE, provisioning platforms like Foreman (software), and cloud images produced for Amazon Web Services, Microsoft Azure, and Google Cloud Platform. The project continues to receive upstream contributions from organizations like Red Hat, community members active in Fedora Council discussions, and participants from events such as DebConf and All Things Open.