Snap: Package any app for any Linux device

Snap package format

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.”

Getting started

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: ******

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!


Image courtesy of mark | marksei

You may also like...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.