A package manager is a set of integrated services that make it easy to install, update, remove and configure packages / programs on a computer.
When talking about the Linux operating system specifically, there is a wide range of package managers to choose from including APT, YUM, RPM, and Pacman. Each of these package managers has a certain characteristic that sets them apart from the others.
However, a relatively new package manager, Snap, has proven to be a viable alternative to traditional package managers. Let's take a look at Snap, its pros and cons, and how to install and use it on Linux.
What is snap
Snap is a cross-platform packaging and delivery system developed by Canonical, the makers of Ubuntu, for the Linux platform. It is compatible with most of the major Linux distributions including Ubuntu, Debian, Arch Linux, Fedora, CentOS, and Manjaro.
Snap has three basic components:
Like any other package manager, Snap also offers packages called snaps. Unlike their counterparts, these packages are independent of traditional package managers and are easy to install.
Snapshots end in . snap Extension, which is essentially a compressed filesystem that uses the SquashFS format and contains the entire package module, including the application, dependent libraries, and additional metadata.
Snapd (or Snap Daemon) uses the Snap metadata to create a secure sandbox for applications on your system. Because it is a daemon, all maintenance and management of the Snap environment is done in the background.
3. Snap store
Snaps are in the Snap Store, and you can explore and download them just like any other package manager. In addition, you also have the option to publish your own Snap packages directly in the Snap Store, which is not possible with traditional package managers.
In addition to these elements, Snap has another essential component, which is called a. is known channel. A channel is responsible for defining which version of a Snap will be installed and tracked for updates on your system. Therefore, when you install or update Snaps, you have the option of specifying which channel you would like to proceed on for each of these operations.
To summarize it:
- Snap: Refers to both application package format and command line interface.
- Snapd: A snap daemon that helps manage and maintain snaps.
- Snap store: Home of all snapshots; allows you to upload your own snaps and explore and install new snaps.
- Snapcraft: A framework that allows you to take your own snapshots.
Snap: The good and the bad
Since Canonical announced Snap, there has been excitement in the Linux community about whether Snap is the right approach to improving package distribution on Linux. This has resulted in two opposing camps: one in favor of Snap and the other critical of its approach in the long term.
Here's a breakdown of everything that is good and bad about Snap.
Benefits of Using Snap
Snaps come with dependencies (libraries) that make it easy to get instant access to a program because you no longer have to manually install the missing dependencies in order for it to work on your system.
Each snap runs in its own containerized sandbox to avoid interference with other system packages. Therefore, when a Snap is removed, the system removes all of its data, including its dependencies, without affecting other packages. This of course also provides a more secure environment as one packet cannot access another's information.
Snap automatically updates Snaps at set intervals. Therefore, always run the latest version of a program on your system.
Snap makes it easier for developers to distribute their software directly to users, so they don't have to wait for their Linux distribution to roll out.
In addition to the previous point, another benefit of giving developers the responsibility of packaging and distributing their software is that they do not need to create distribution-specific packages as they are bundled with the required dependencies.
Cons of Snap
Because Snaps are bundled with dependencies, they are larger and take up more storage space than their counterparts from other package managers.
Due to the bundled dependencies, Snaps are distributed as compressed file system images and must first be mounted prior to installation. Because of this, Snaps run slower than traditional packets.
Although Snap allows developers to distribute their Snaps directly to users, the distribution pipeline requires them to set up an account with Canonical and host their Snaps on it. This contradicts the true nature of the open source methodology because although the software is still open source, the package management system is controlled by an entity.
Another disadvantage of developers distributing packages is that the packages do not go through rigorous community reviews and therefore run the risk of containing malware – as they did a few years ago.
Due to the fact that Snap's back-end is still closed-source and controlled by Canonical, many major Linux distributions are not on board with the idea of using Snap as the default package manager on their system.
In terms of malware risk, Snap now uses automated malware testing to scan user-uploaded packages for malicious code before distributing it in the Snap Store.
How to install Snapd on Linux
Since snapd is an essential component of Snap, the first thing you need to do is install it on your system. However, if you are running one of the following Linux distributions, snapd is already pre-installed on your system: KDE Neon, Manjaro, Ubuntu (16.04 / 4 LTS and 20.04 LTS), Zorin OS.
Some other Linux distributions require you to install snapd manually.
Under Debian / Ubuntu:
sudo apt update
sudo apt install snapd
Installing snapd on CentOS and other RHEL-based distributions is very easy:
yum install epel-release
yum install snapd
To install snapd on Fedora:
sudo dnf install snapd
Under Arch Linux:
git clone https://aur.archlinux.org/snapd.git
How to install snapd on Manjaro Linux:
sudo pacman -S snapd
After the installation you will need the systemd Unit responsible for managing Snap communications on (some) Linux distributions before you can use Snap.
If you are using a Linux distribution other than Ubuntu and its derivatives, run the following command to enable the snapd systemd unit:
sudo systemctl enable –now snapd.socket
Finally restart your system with:
How to use Snap on Linux
Using Snap is pretty similar to using other package managers. Since you installed snapd on your system in the previous step, you can now access the Snap tool and easily interact with Snaps from the Snap Store.
Find a snap
Snap lets you explore the Snap Store and find packages in different categories. So if you want to search for snaps in a specific category, use the following command syntax:
snap find package_category
Snap Find Development
If you come across a package and want to learn more about it, use the the information Method with the standard command.
snap info package_name
For example, to extract information about the GIMP snap:
Snap Info Gimp
Install a snap
Finally, when you find a Snap that suits your needs, you can install it by running:
sudo snap install package_name
After the installation you will find the program in the Applications Your Linux distribution's menu. You can then run it directly from the menu or via the terminal by entering the name.
List installed snaps
To get a list of all installed Snaps on your system:
View version information of a Snap
To find out the current version of a Snap, do the following:
Package Name Snap List
Snap will automatically update the packages installed on your system. To make this easier, snapd is set by default to check for updates four times a day. However, you can change this update frequency as you wish.
In addition, if necessary, you can perform an immediate update by doing the following:
Similarly, you can also check for an update for a Snap with:
sudo snap update package_name
When you do, Snap will check the channel the Snap is tracking for a newer version. If an update is available, it will be downloaded and installed automatically.
Revert to the previously used version of a Snap
If you run into problems after updating a Snap, you can revert to its previous version by doing the following:
sudo snap revert package_name
Deactivating and activating a snap
At times when you are not using a Snap but may need to in the future, you can temporarily turn it off and turn it back on if necessary. That way, you don't have to painstakingly uninstall and reinstall the snap.
To disable a snap, type:
disable sudo snap package_name
If you want to enable it, just do the following:
activate sudo snap package_name
Removing a Snap
Finally, you'll remove unused Snaps on your system that you probably won't need in the future:
sudo snap remove package_name
Successful setup of Snap on Linux
If you've followed the instructions up to this point, Snap is ready to use on your Linux system. You should then be able to find and download most of the packages you need. Of course, like any other package manager, it can take you some time to familiarize yourself with Snap. But once you get the hang of it, you can use it effectively.
However, there are both pros and cons to using Snap that you should consider before you get started. If you're looking for an alternative to Snap – one that goes well with the free and open source methodology – check out Flatpaks to get a better idea of which package manager has a better store for downloading Linux apps.
Flathub vs. Snap Store: Best Sites for Downloading Linux Apps
If you're looking to download Linux apps, how do Flathub and Snap Store compare? We'll pit them against each other to find out.
About the author
(14 articles published)
Yash is Staff Writer at MUO for DIY, Linux, programming and security. Before he discovered his passion for writing, he developed for the web and iOS. You can also find his writing on TechPP where he covers other industries. In addition to technology, he likes to talk about astronomy, Formula 1 and clocks.
By Yash Wate
Subscribe to our newsletter
Subscribe to our newsletter for tech tips, reviews, free e-books, and exclusive offers!
One more step …!
Please confirm your email address in the email we just sent you.