Package Management System

Caleb McKee, Otto Urpelainen, Ben Cotton Version F41 and newer Last review: 2026-05-10
Fedora uses a package management system based on RPM to install, update, and remove software. This page explains what a package management system is, its advantages, and the tools available.

Introduction

Fedora uses a package management system based on RPM, the RPM Package Manager. RPM provides the base for several higher-level tools, including:

  • DNF - the default command-line package manager since Fedora 41

  • GNOME Software - the default graphical package manager on Fedora Workstation

  • KDE Discover - the graphical package manager on Fedora KDE Spin

On image-based Fedora variants such as the Fedora Atomic Desktops, package management works differently. See the Fedora Atomic Desktops User Guide for details.

Advantages of package management systems

Package management systems have many advantages:

  • It is easy to query what version of a package is installed or available.

  • It is easy to remove a package entirely, removing all its files.

  • It is easy to verify the integrity of a package’s files, so you can check for corruption or tampering.

  • It is easy to upgrade a package by installing the new version and removing all the old version’s files, avoiding lingering files that could cause problems.

  • It is easy to see what packages require or provide things that other packages need, ensuring all dependencies are met.

  • It is easy to install or remove groups of packages.

  • In many cases it is possible to downgrade to an earlier version of a package, for example when a new version has a bug.

Disadvantages of package management systems

  • You can only use the versions of the package that are available, or having to make your own package if you need a different version.

Why mixing source installs and packages is a bad idea

Package management systems have no way to track when you bypass them and install something from source. Avoid mixing source installs and packaged installs for the following reasons:

  • You lose all the advantages of a package managed system listed above.

  • Installing from source might overwrite, delete, or change existing files owned by a package, causing that package to stop functioning correctly.

  • The source install might override a package install, causing undefined behavior in either.

  • Installing from source makes it difficult to debug issues, since versions cannot be easily queried and integrity cannot be checked.

  • Fedora packages might include patches or configuration to work correctly with other packages that upstream source does not include, leading to loss of functionality.

  • Software installed from source does not upgrade with package managed packages, leading to breakage on system updates.

Consider making your own package if you need a different version or a modified package. See: Packaging Tutorial: GNU Hello

Finding software

If software is missing from your installation, try the following steps to find a packaged version:

  1. Search in Fedora using dnf search foo, or search using GNOME Software or KDE Discover.

  2. Try one of the available third-party repositories.

  3. Build your own package.

Package management tools

  • DNF - the default command-line package manager

  • GNOME Software - graphical package manager for GNOME

  • KDE Discover - graphical package manager for KDE Plasma

  • rpm - the underlying low-level RPM package manager