There have been several attempts to address this obstacle of deploying software across multiple Linux distributions. The latest such initiative, spearheaded by none other than the venerable Canonical Ltd, the Ubuntu developer, is Snapcraft. Snapcraft is the developer tool for packaging software in the universal snap format.
The rest of this post explains how to use snaps, from a user rather than developer's perspective.
[2018-05-23 update] A snap from the official Snap store was found to contain hidden cryptocurrency mining code, and was since removed from the store. The news highlight the fact that the mere existence of a snap in the Snap store does not guarantee its integrity. The lesson is to only use snaps from trusted sources featured in the Snap store, such as the original software author, an official maintainer, or a trusted community source.
What are snaps?
Snaps are universal software packages that can be deployed across the major Linux distributions and architectures including IoT. Although snaps is a format championed by the creator of Ubuntu, it is supported on all major Linux distributions including Debian, Ubuntu, Mint, Fedora, Gentoo, ArchLinux, Manjaro, and OpenSUSE.
Besides being distribution-agnostic, snaps are also self-contained. Linux users are all too familiar with "the dependency hell", ie, the occasional extreme frustration experienced in software installation due to dependency issues. A snap is self-contained in that it bundles the required runtime libraries inside the package.
Once you install a snap on your system, it will be auto-updated to run the latest release. You however can manually roll back to a previous version of the software if you so desire.
In summary, snaps are universal, self-contained, auto-updating Linux software packages.
Install snapd
To be able to run snap packages on your Linux system, you must first install
snapd
, the service responsible for running and managing snaps. The following command will install snapd
on a Debian system.$ sudo apt install snapd
The Snap store
You can search the relatively small but growing online Snap store for snaps to install. Alternatively, you can search using the command-line interface:
$ snap find firefox
Name Version Developer Notes Summary
firefox 59.0.2-1 mozilla - Mozilla Firefox web browser
Why would you download the firefox snap when firefox is readily available as a DEB, via the Debian standard repository? Similarly, chromium and libreoffice belong to the same category of software. The answer is that, in most cases, snaps offer a much more recent version of the software than that from the native Linux package manager. For instance, Debian 9 ("Stretch") packages FireFox 52 in its standard repository whereas you can get Firefox 59 as a snap.
The Snap store features some snaps that are not available from the standard repositories of major Linux distributions. Examples are ghostwriter and vidcutter. Instead of building such software manually, you can download and deploy their corresponding snaps from the Snap store.
Below is a non-exhaustive list of software available in snaps that I personally find useful(or fun).
- Chromium
- Firefox
- Ghostwriter-casept (a Markdown editor)
- LibreOffice
- Minecraft
- Nextcloud
- OBS Studio (for screencasting and live video streaming)
- Opera
- Skype
- Slack
- Solitaire
- Spotify
- VidCutter (a video editor)
To find out more about a particular snap, execute the following command:
$ snap info minecraft
name: minecraft
summary: Minecraft is a game about placing blocks and going on adventures.
publisher: snapcrafters
license: Proprietary
description: A game about placing blocks while running from skeletons
snap-id: aJQRf6WPQq04DH0TB2HdTB6K9rf6I1yX
channels:
stable: latest (11) 148MB -
candidate: latest (11) 148MB -
beta: latest (11) 148MB -
edge: latest (11) 148MB -
How to install a snap
Installing a snap is as easy as:
$ sudo snap install solitaire
If you don't have root privileges, you can still install snaps by first signing in to the Ubuntu Snap store. You will need an Ubuntu One account (which is free).
$ sudo snap login <your-email-address>
$ snap install solitaire
To list the snaps already installed on your system:
$ snap list
Name Version Rev Tracking Developer Notes
core 16-2.32.1 4327 stable canonical core
skype 8.18.0.6 23 stable skype classic
solitaire 1.0 2 stable 1bsyl devmode
To purge a snap from your local system:
$ sudo snap remove solitaire
Note that the above command will delete all snap-specific data and settings.
How to run a snap
Installing a snap in most cases will automatically create a shortcut on your desktop menu system. For instance, you will find an entry for the solitaire snap in the
Games
sub-menu.Alternatively, you can always run the snap command explicitly on the command line.
$ snap run <your snap command>
The caveat with the command-line approach is that the snap argument may not always be obvious. For instance, with the solitaire snap, the corresponding name to use for the run command is
solitaire.1bsyl
, not solitaire
. You can find out the specific name to use by examining snap's bin directory:$ ls /snap/bin/
skype solitaire.1bsyl
$ snap run solitaire.1bsyl
No comments:
Post a Comment