1. Introduction
Arch is a distribution of Linux that can be tricky to get the hang of. One of the more difficult parts of Arch Linux is installing packages. Arch recommends that we install packages using its built-in package manager, pacman, but it’s still possible to install packages in other ways.
In this tutorial, we’ll learn why the Discover Software Manager may not be able to install packages in Arch. Then, we’ll learn how to fix this issue using two different methods.
2. What Is the Discover Software Manager?
The Discover Software Manager (or simply Discover) is the Plasma desktop environment’s graphical user interface (GUI) for installing packages. It’s compatible with many distributions of Linux and can update firmware and install packages.
Arch provides Discover through its official user repository. However, in some cases, Discover is unable to install packages. In this section, we first install Discover and then show a potential error.
2.1. Installing Discover
First, we need to ensure we have Discover on our system. For instance, Arch provides Discover in its official repository, but we can also install it directly from the source code.
To install from the Arch official repository, we use the pacman command:
$ sudo pacman -S discover
In particular, pacman -S installs a package in Arch from the command line. At this point, we should have Discover available.
2.2. Backends
To understand how Discover works, we first need to see how it installs packages. Discover works as a user interface to install different packages but doesn’t provide package manipulation capabilities itself. Instead, it uses a package backend.
Basically, a package backend is the associated library or tooling required to use and install a certain package type. For Discover to install a package, we need to have the package type’s associated backend installed.
Currently, Discover supports several backends:
- Flatpak
- fwupd
- KNS
- PackageKit
- SteamOS
- RPM
- Snap
Many of these options have separate package managers, but Discover aims to unify their usage.
2.3. Troubleshooting
After installing, let’s launch Discover and see what happens:
As we can see, Discover shows an error:
Discover currently cannot be used to install any apps or perform system updates because none of its app backends are available
This error occurs because we don’t have a package backend installed that works with Discover. Typically, many distributions of Linux provide these backends automatically when installing Discover. However, Arch doesn’t provide a default backend for Discover.
Luckily, to fix this issue, we can just install one or more backends.
3. Configuring Discover
While Discover supports many package types, issues emerge when installing from a backend that interferes with packages managed by the system package manager. For example, installing a package with Discover may provide a different version than the one provided by the system package manager, causing issues with software dependent on a specific version. Further, overwriting one package with another may result in errors when performing upgrades or uninstallations with any manager later.
For this reason, Arch recommends against using Discover. That being said, it’s possible to minimize risk by installing only certain package backends.
3.1. Finding Package Backends
First, let’s run the pacman command to get a list of backends we can use:
$ pacman -Si discover | grep -Pzo '(?s)Optional Deps.*?(?=Conflicts)'
Optional Deps : packagekit-qt5: to manage packages from Arch Linux repositories (not recommended, use at your own risk)
flatpak: Flatpak packages support
fwupd: firmware update support
In this example, we list information about the Discover package using pacman -Si. Then, we pipe that to grep for filtering out everything but the optional dependencies.
As we can see, there are three optional dependencies, each corresponding to a different package backend. However, Arch discourages the use of packagekit-qt5 since it interferes with pacman.
To enable a package backend with Discover, we again install it with pacman.
3.2. Using Flatpak
Flatpak is a package management system providing desktop applications for Linux. These applications are called Flatpaks and are natively sandboxed and runnable on any Linux distribution.
To install the Flatpak backend, let’s again use pacman:
$ sudo pacman -S flatpak
After installing, Discover should now show a list of Flatpak applications.
The default source that Discover uses for Flatpak is Flathub, but we may add additional sources from the Settings menu.
Let’s try adding Gnome Nightly to our sources list:
To add a source, we click Add Source in the Settings menu and paste the URL of the repository, in this case, https://nightly.gnome.org/gnome-nightly.flatpakrepo.
Now, Gnome Nightly applications are available for installation in Discover.
Typically, most Flatpaks should be published in the Flatpak repository, so another source isn’t usually needed.
3.3. Using fwupd
fwupd is another backend that Discover can use. It provides automatic firmware updates for Linux.
Let’s install fwupd using pacman:
$ sudo pacman -S fwupd
Once installed, we can adjust firmware updates through the Settings menu in Discover.
At this point, we should be able to employ Discover for regular package installation, in addition to firmware updates.
4. Conclusion
In this article, we learned why Discover Software Manager may sometimes be unable to install packages in Arch Linux. Then, we went over ways to fix this issue.
First, we solved the main issue by configuring Flatpak for desktop applications. Then, we also ensured the maintenance of firmware updates via fwupd.