Snaps are software packages developed by Canonical initially for Ubuntu. Now they are available for all major Linux distributions and exhibit significant benefits over typical packaging systems like APT, RPM, and Pacman. The package manager used to manage snaps is known as snappy and the service behind it is known as snapd.
Table of Contents
Benefits of Using Snap Packages
- Snaps are containerized packages making them secure, easy to install, and maintain.
- Secured through application confinement keeps them from separate from the Operating System, other applications, and hardware functions.
- They auto-update so you are always running the latest software.
- Their dependent libraries are bundled in the packages making them available across a wide variety of Linux systems. (This also makes them easy to sneaker net to disconnected systems - see more below)
- They are easy to rollback to a previous version if you have issues with an update.
In this article, we will explain how to install snapd on Linux OS. We will be covering the use of snap (and the snap store) to manage and run snap packages. You can use either the GUI or the command line to manage snaps. We will focus more on managing the snaps via the command line as it offers advanced functionalities.
Snapd can be easily installed from the command line. For that, you will need the root account or a standard account with sudo privileges.
Install Snapd on Ubuntu, Debian, or Linux Mint
First, you need to update the package manager:
sudo apt update
Then install Snapd:
sudo apt install snapd
Install Snapd on Fedora, CentOS, or Red Hat
sudo dnf install snapd
NOTE: You should log out and log back in to update snap's paths!
Verify Install and Show Snap Version Information
A quick way to verified Snap is installed is to pass
version as an argument to the command.
kbuzdar@Linux-debian:~$ snap version snap 2.44.3 snapd 2.43.3 series 16 debian 10 kernel 4.19.0-5-amd64
If you receive output similar to above, that indicates that snap is successfully installed.
Create Optional Sym Links for Fedora
You need to create a symlink to enable classic snap support on Fedora.
sudo ln -s /var/lib/snapd/snap /snap
To make your installed snaps show up in the Gnome Application menu add the following symlink.
sudo ln -s /usr/libexec/snapd /usr/lib/
NOTE: You should log out and back in again to once again ensure snaps paths are updated correctly.
Managing Snaps via GUI
In order to manage the snaps via GUI, you will need to install the Snap Store. Snap Store is an application that can be used to search and install new snaps or remove existing ones.
Install Snap Store
To install Snap store, open the command line Terminal, and type the following command:
$ sudo snap install snap-store
Once installed, you can launch the Snap store simply with the following command:
Additionally, you can open the snap store from the Gnome applications menu. Simply hit the super key and search for Snap Store, or find it in the list of installed applications.
Installing Snaps from the Snap Store
Installing snaps via GUI is a straightforward method. Simply search a snap using the search button at the top left corner of the snap store.
You can use the search function on the top left to search for the desired snap package. Alternatively you can browse the categories.
Once you find a snap, simply click install button on the top left to install it.
Removing or Uninstalling Snaps From the Snap Store
To see and remove installed snaps, click the installed tab at the top of the windows. You will be presented with a list of installed snaps. Each one will have a convenient remove button next to it which can be used to uninstall a snap.
Launching Installed Snaps from the GUI
You can launch an installed snap just like you would any other program. Open the Gnome applications menu by hitting the super key. Then either search by typing the name or find it in the applications list.
Managing Snaps via Command Line
Search for Available Snaps
With snap, you can quickly search for available packages using the relative keywords. It can be helpful when you are uncertain about the exact name or spelling of the snap package.
$ snap find <search_keyword>
$ snap find plex Name Version Publisher Notes Summary plexmediaserver 220.127.116.1137-b69929dab plexinc✓ - Plex magically organizes your media libraries and streams them to any device tizonia 0.18.0 tizonia - Cloud music from the Linux terminal sickgear 0.21.30 sickgear - SickGear automates TV filebot 4.9.1 filebot - The ultimate TV and Movie Renamer champ 0.0.1~git si-dz0ny - Plex 2nd screen player tvhproxy 1.0 morphis - A small flask app to proxy requests between Plex Media Server and Tvheadend
This command returns a list of packages that matched the search keyword.
Install Snap Package
When you find the exact name for your snap package, it can be installed with the
$ sudo snap install <package_name>
$ sudo snap install riot-web
Listing Installed Snap Packages
You can list all of the installed snaps in your system using the
$ snap list Name Version Rev Tracking Publisher Notes capturegrid4 v4.15 53 latest/stable kuvacode - core 16-2.44.3 9066 latest/stable canonical✓ core core18 20200427 1754 latest/stable canonical✓ base powershell 6.2.4 88 latest/stable microsoft-powershell✓ classic riot-web 1.5.15 76 latest/stable popey -
This listing also shows some basic information about the packages.
Show Detailed Information About a Snap Package
Each package contains important meta data like publisher, id, channels, etc. To get a detailed listing for a snap use the
$ snap info <package_name>
Here is example output for the solitaire snap package:
$ snap info solitaire name: solitaire summary: usual Solitaire card game, as known as Patience or Klondike publisher: Sylvain Becker (1bsyl) store-url: https://snapcraft.io/solitaire contact: email@example.com license: unset description: | This is the usual Solitaire card game. Also known as Patience or Klondike. commands: - solitaire.1bsyl snap-id: 0rnkesZh4jFy9oovDTvL661qVTW4iDdE tracking: latest/stable refresh-date: today at 21:59 EDT channels: stable: 1.0 2017-05-17 (2) 11MB - candidate: 1.0 2017-05-17 (2) 11MB - beta: 1.0 2017-05-17 (2) 11MB - edge: 1.0 2017-05-17 (2) 11MB - installed: 1.0 (2) 11MB -
Launching Installed Snaps
Once installed, the snap package can be launched simply with the command line as:
For example, PowerShell snap can be launched as:
Update Installed Snaps
You can update all the installed snap packages with this command:
$ sudo snap refresh --list
To update a single package only, simply replace
--list with the package name.
$ sudo snap refresh <snap_package>
$ sudo snap refresh powershell snap "powershell" has no updates available
Downgrade Snap Package
It may be necessary to downgrade a package to its previous version because of bugs or instability issues. You can use the
revert option to rollback to a previous version like so:
$ sudo snap revert <snap_package>
$ sudo snap revert powershell powershell reverted to 6.2.4
Enable or Disable Snap Package
You may want to disable the snap temporarily when not in use. It can be done with the following command:
$ sudo snap disable <snap_package>
$ sudo snap disable sublime-text sublime-text disabled
Similarly, to re-enable it, the command would be:
$ sudo snap enable <snap_package>
$ sudo snap enable sublime-text sublime-text enabled
Some snaps have services linked to them. Use the following command to view the snap services and their status.
$ snap services Service Startup Current Notes capturegrid4.node enabled inactive - plexmediaserver.plexmediaserver enabled active -
Here are some commands to manage snap services.
Start a snap service,:
$ sudo snap start <service_name>
To stop a running snap service:
$ sudo snap stop < service_name>
Restart a service after making any configuration changes:
$ sudo snap restart <service_name>
Remove Snap Package
In case, you want to remove the snap package, you can do so with the following command:
$ sudo snap remove <snap_package>
kbuzdar@Linux-debian:~$ sudo snap remove sublime-text sublime-text removed
Install Snap Without Internet
You can install snaps on a system without an internet connection. This is where I love snaps. To install other packages on a disconnected system you have to download the package and all it's dependencies. Then when you bring it over to the disconnected system, you have to hope the dependencies don't have dependencies. This can stick you in what I call "dependency hell".
Since snaps are packaged with all their dependencies, you can easily download them and sneaker net them to a disconnected system.
Of course, you will need a connected system to download the files. You can do so with the following steps:
In a system with an internet connection, download the required snap package:
$ sudo snap download <snap_package>
$ sudo snap download powershell Fetching snap "powershell" Fetching assertions for "powershell" Install the snap with: snap ack powershell_104.assert snap install powershell_104.snap
It will download the two files with .assert and .snap extensions on the system.
$ ls -l total 65712 drwxr-xr-x 2 kbuzdar kbuzdar 4096 Apr 30 17:27 Desktop drwxr-xr-x 2 kbuzdar kbuzdar 4096 Apr 30 17:27 Documents drwxr-xr-x 2 kbuzdar kbuzdar 4096 Apr 30 17:27 Downloads drwxr-xr-x 2 kbuzdar kbuzdar 4096 Apr 30 17:27 Music drwxr-xr-x 2 kbuzdar kbuzdar 4096 May 2 18:19 Pictures -rw-r--r-- 1 root root 5682 May 2 18:44 powershell_104.assert -rw------- 1 root root 67239936 May 2 18:44 powershell_104.snap drwxr-xr-x 2 kbuzdar kbuzdar 4096 Apr 30 17:27 Public
Place these files on the system that has no internet connection. Then using the command line, navigate to the directory where these files have placed and run:
$ snap ack package_name.assert
Then install the snap using:
$ snap install package_name.snap
$ snap ack powershell_104.assert $ snap install powershell_104.snap powershell 7.0.0 from Microsoft PowerShell✓ installed
Through this simple, yet useful snapd tool you can easily search, install, update, and remove snaps on the Linux system. You can also manage services and easily install snaps in a system with no internet connection.
Now you should be comfortable using the snap. If you have any questions or comments we would love to hear them. Sound off below!
This site uses Akismet to reduce spam. Learn how your comment data is processed.