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:

Discover Software Manager showing error about its backend

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:

Adding Gnome Nightly to Sources List in Discover

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.

Comments are open for 30 days after publishing a post. For any issues past this date, use the Contact form on the site.