Snap: Package any app for any Linux device
In Linux we have a multitude of package managers, each with its own pros and cons. Today we’ll speak about Snap: a universal package manager sponsored by Canonical, the society behind Ubuntu.
What is Snap? Do I need it?
Snap is a universal package manager. What does that mean? We’re used to traditional package managers like YUM (and DNF) or APT, but their limitation is portability. Packages are mostly architecture-specific, and having multiple architectures supported means more work. That’s why Snap was originally invented. A common package format that could run without modifications both on Desktop machine, on Server or on whatever device. Snap started out as a Canonical-backed project (the company behind Ubuntu) and for a long time it was intended to be Ubuntu-only, until the community made it possible to run it natively on other distributions, making it a fully-fledged universal package manager. Although Snap can now run on many distributions (even Fedora!) it is still in a unfinished state and it heavily depends on the Ubuntu store but Canonical has assured: “Snaps don’t intrinsically depend on the Ubuntu store, that’s just what
snapd does today, and we expect people will have different stores for their snaps in future.”
Remember that Snap isn’t still finished and if you plan to try it, you should do it on Ubuntu (sadly) to get the best possible experience.
sudo apt install snapd
This command will install the needed software on Ubuntu. Next you need an Ubuntu account. After that you can sign in (using your own credentials):
$ snap login [email protected] Password: ********* 2-factor: ****** Welcome!
Now you’re ready to install your first app, but wait, you don’t yet know which one, you can search in the “repository” by typing:
$ snap find hello Name Version Developer Notes Summary hello 2.10 canonical - GNU Hello, the "hello world" snap hello-huge 1.0 noise - A really big snap hello-world 6.1 canonical - Hello world example
Then you decide to install the GNU Hello application.
$ snap install hello
After a few seconds you’re ready to go:
$ hello Hello, world! $ hello.universe Hello, universe!