GNOME Software

GNOME Software is a utility for installing applications and updates on Linux. It is part of the GNOME Core Applications, and was introduced in GNOME 3.10.

It is the GNOME front-end to the PackageKit, in turn a front-end to several package management systems, which include systems based on both RPM and DEB.

The program is used to add and manage software repositories as well as Ubuntu Personal Package Archives (PPA). Ubuntu replaced its previous Ubuntu Software Center program with GNOME Software starting with Ubuntu 16.04 LTS, and re-branded it as "Ubuntu Software".

It also supports fwupd for servicing of system firmware.

GNOME Software supports automatic updates for Flatpak applications, but not for system packages or updates. This was introduced in GNOME 3.30 released in 2018. Users can control whether Flatpak updates are automatically downloaded and installed

GNOME Software removed Snap support in July 2019, due to code quality issues, lack of integration (specifically, the user can't tell what snap is doing after they click "install" and that it generally ignores GNOME's settings), and the fact that it competes with the GNOME-supported Flatpak standard.

Features
The goals and use cases that GNOME Software targets as of November 2020:


 * Primary goals
 * Allow people to find apps by browsing or search:
 * a specific app that they're looking for, or
 * apps in a particular category, or with particular functionality that they require
 * Allow people to effectively inspect and appraise apps before they install them (screenshots, descriptions, ratings, comments, metadata)
 * Allow people to view which apps are installed and remove them
 * Present a positive view of the app ecosystem
 * Reinforce the sense that there are lots of high quality apps
 * Encourage people to engage with that ecosystem, both as users and as contributors
 * When browsing, present and promote the best apps that are available
 * Facilitate accidental discovery of great apps
 * Handle software updates. Make software updates as little work for users as possible. To include: apps, OS updates (PackageKit, eos, rpm-ostree), firmware
 * Support multiple software repositories, defined by both the distributor and users.
 * Show which repos are configured. Allow them to be added/removed.
 * Handle cases where the same app can be installed from multiple sources.


 * Secondary goals
 * OS upgrades
 * Hardware driver installation
 * Input method installation
 * Respond to application queries for software (apps, codecs, languages)
 * Offline and metered connections
 * OS updates end of life
 * App end of life


 * Non-goals
 * Not a package manager front-end
 * Not all repos are equal
 * Not all apps are equal