Snappy, also known as Snap, is a package manager for Linux in which a single package, called a snap, can be installed on multiple Linux distributions. This is different from traditional package managers like dpkg, apt, aptitude, rpm, yum, which cater to a single Linux distribution or a group of Linux distributions based on a single distribution.

Snap has a daemon to manage the snaps, called snapd. The client tool for Snap is called snap. Snap is pre-installed in Ubuntu 16.04 onwards.

In this article, we will see how to find and install apps using Snap in Ubuntu 20.04.

Finding Apps using Snap

We can use the find command in snap to search for packages based on keywords. We can also use the alias for this command, search. Snap will search for the keyword not only in the package name but also in the description of the package.

snap find "keyword"

If a single keyword is used for searching, it need not be enclosed in quotes. But if more than one keywords are used for searching, quotes must be used.

Notice the green asterisk (*) next to kde. It implies that the corresponding publisher is a verified publisher.

To search for packages only in “stable”, i.e., not in beta or other states, use --narrow flag.

snap find "keyword" --narrow

As we used the flag above, the package scidvspc-hkvc was not returned by find command this time, since it does not have a stable release.

Snap organizes packages in sections, like games, finance, etc. User can search for packages in a particular section.

First, to see the list of all sections, run:

snap find --section

To search in a particular section, use flag --section.

snap find chess --section="SectionName"

Installing Apps using Snap

We can use the install command in Snap to install a package.

snap install package_name

The user needs to have sudo privileges to install a package from Snap. Enter your password when prompted.

Snap will now perform the required steps to install the package and print a progress bar on the terminal.

By default, Snap installs packages from the stable channel. If you wish to install package from a different channel, eg. beta, you can use the flag --beta.

snap install <package_name> --beta
snap install <package_name> --candidate

A Snap channel is basically a concept used for tracking versions of the packages. You can read more about Channels at the official Snap documentation.

You can read the man page of Snap using man snap. It has more options related to Snap security confinement levels, etc. Also, refer to the official Snap documentation for a better understanding of Snap concepts.