DNF and the Repositories
- Relevant to all editions of PCLinuxOS.
Introduction
The PCLinuxOS distribution media installs a number of the most popular Linux applications at installation time but there are large number of additional applications that you may wish to install. These additional applications are available as RPM packages in the PCLinuxOS online software repository. There is ONE single repository which contains all the application and system packages available for PCLinuxOS. For convenience this repository is mirrored on a number of servers around the world. Choosing a mirror that is close to you geographically should provide the best download times.
A single application may consist of a number of RPM packages and may require a number of other packages to be installed (called dependencies). These package relationships can be complex and are best managed using a Package Manager application. On PCLinuxOS we now use DNF to carry out the process of installing, removing and updating packages.
Prior to 2026, PCLinuxOS used custom apt and Synaptic package managers to manage the RPM packages which make up the system. These served us well for over 20 years but are no longer actively maintained and so could fail to meet our needs in the future. That is why PCLinuxOS has now switched to DNF.
The DNF package management software is command-line driven and so a custom graphical front-end called dnf-package-manager has been created to allow users to install, update and delete packages. This is not a full replacement for Synaptic but it does the basic package management functions such as search, install, update, remove. DNF Package Manager is installed as the default package manager on installation ISOs created after September 2025. Existing installations should use Synaptic (or apt-get install) to install dnf-package-manager.
Running DNF Package Manager
- By clicking on DNF Package Manager icon
in the taskbar near the left hand lower corner of your screen. - By going to PC Menu at the left hand lower corner of your screen, then: > Applications > Software Center > DNF Package Manager.
- By typing 'dnf5_launcher' into a root terminal.
- If you have one of the update-notifier applications installed they usually have an option for launching DNF Package Manager.
As soon as DNF Package Manager starts, it scans your system for existing software displays the main window:
The main workspace has 3 tabs:
- Upgradable - Lists any installed packages for which there are updates available in the repository. Use this tab for updating your system
- Installed - Lists packages which are installed on the system. Use this tab for removing packages.
- Available - Lists packages available in the repository which are not currently installed. Use this tab for installing software packages.
Above the main workspace there are some global action buttons:
The first thing to do before performing any install or update procedure is to click the Refresh button. This tells DNF Package Manager to download the most up-to-date list of packages from the repository. Working with an out-of-date list can cause errors when trying to install or update packages.
At the bottom of the workspace there are some package specific action buttons:
These buttons perform the stated action on any packages which are selected in the workspace. For example, if you have the Installed tab selected and select one or more packages in the workspace then the Remove and Reinstall buttons will be activated to perform those actions.
Comprehensive documentation on how to use dnf-package-manager can be found in a PDF document located here
DNF equivalent of common APT commands
apt-get update
This command was used to update the package list with the latest package metadata from the repository. DNF doesn't have a direct equivalent but uses the option --refresh which can be appended to a command to force updating of the cached metadata before running the command (see below).
apt-get dist-upgrade
This command was used to apply all available updates to the system. The equivalent DNF command is:
dnf upgrade --refresh
You can also use distro-sync instead of upgrade to apply all updates. The difference is that upgrade will not change any packages which are newer than the version in the repository. This might be useful for developers/packagers who may have installed a newer version of a package and don't want it downgraded whereas distro-sync which will keep their systems aligned with the versions in the repository.
apt-get install
To install a package and it's dependencies from the repository the DNF command is install, for example to install filezilla:
dnf install filezilla --refresh
apt-get remove
To remove a package and it's dependencies from the system the DNF command is remove. For example:
dnf remove filezilla
apt-cache commands
Various apt commands were used to query the package cache for information about packages. Not all of these have direct equivalents in DNF but here are some examples of the main ones
- search - Look for a particular package. For example to search for packages which work with PDF files:
dnf search pdf
This will search the name, summary, and description fields. For more control you should use repoquery.
- whatprovides - search for packages which provide a particular "capability"
dnf repoquery --whatprovides /usr/bin/python3 dnf repoquery --whatprovides 'pkgconfig(libssl)' dnf repoquery --whatprovides 'libcrypto.so.3()(64bit)'
- whatrequires - search for packages which require a particular "capability"
dnf repoquery --whatrequires openssl dnf repoquery --whatrequires 'libcrypto.so.3()(64bit)'
- unmet - list broken packages in the repository
Since v5 there is no direct equivalent of this command in DNF (prior versions had --unsatisfied). Dependency resolution/checking is only done at install time. The command dnf check will check installed packages but not the wider repository.
Technical Information
As mentioned earlier, PCLinuxOS has ONE single repository which contains all the application and system packages available for PCLinuxOS. This is different from other distributions which sometimes have many repositories (sometimes called PPAs) depending on the type or origin of the software. The PCLinuxOS public repository is hosted on the [https://en.wikipedia.org/wiki/NLUUG NLUUG server' in the Netherlands which synchronizes with the devs master repository once or twice per day.
For convenience, to reduce load on NLUUG and improve download time for users there are a number of other servers around the world which are set up as mirrors of the repository on NLUUG. These mirrors usually synchronize with NLUUG at least once per day. These synchronizations do not necessarily happen at the same time of day so you should not configure more than one mirror in DNF otherwise it could end up with a mixture of package versions. That aside the mirrors are identical copies of the repository on NLUUG.
The repository configuration file for DNF is stored in /etc/repo.d/default.repo. The main repository itself is divided up into further sub-repositories to make package maintenance easier. Each sub-repository has a corresponding sub-directory which contains the actual RPM packages.
These sub-repositories can be enabled or disabled depending on requirements. PCLinuxOS has 4 sections which are always enabled by default:
- x86_64 contains all the main system and non-desktop specific RPMs.
- kde6 contains RPMs specific to the KDE/Plasma desktop environment.
- xfce4 contains RPMs specific to the XFCE desktop environment.
- mate contains RPMs specific to the MATE desktop environment.
There are other sub-repositories which can be optionally enabled if required. They are not enabled by default because they have implications for system stability. You should only enable them if you fully understand the implications and accept the responsibility.
- kernel has the latest kernel released by kernel.org.
- test has packages which are currently undergoing testing.
- retro has packages which are sometimes required to support specific older hardware configurations. Only enable this section if instructed to do so.
- nvidiaNNN has branches of the proprietary NVIDIA driver.
In DNF Package Manager you can enable/disable these sub-repositories by clicking the Repositories button in the top action bar:
After the change you should click Refresh in the top action bar to update the current package list.
You can use the Change button here to switch to a different mirror:

