Package Management System
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:
-
Search in Fedora using
dnf search foo, or search using GNOME Software or KDE Discover. -
Try one of the available third-party repositories.
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
Want to help? Learn how to contribute to Fedora Docs ›