snapd 2.18: the snap command strikes back

Last Thursday, December 8, the snapd team was happy to announce a new release of snapd (2.18), the daemon that enables systems to work with snaps and provides the snap command. It’s time we take a look at what makes this release stand out.

A brief tour of new snap commands (and the improved snap find)

On Ubuntu Core systems or any snap-enabled Linux distribution, the snap command is your gateway to installing standalone and secure apps. With this new release, automatically installed on all systems tracking the stable release channel of Ubuntu Core, new features have arrived to make your snap management workflow as delightful as possible.

snap info

The new snap info command shows detailed information about a snap. Whether it is in the store, installed on your system or even a local .snap file. It gives you an overview of everything snapd know about it: the release channel you are tracking (edge, beta, candidate or stable), its confinement status, the installed revision and ones available in other channels. This is your new go-to command to get insight about the status of a snap.

Here is the output of snap info for an installed snap:

$ snap info nats-server
name:        nats-server
summary:     "High-Performance server for NATS"
publisher:   nats-io
tracking:    stable
installed:   0.9.4 (1) -
channels:
  stable:    0.9.4 (1) -
  candidate: 0.9.4 (1) -
  beta:      0.9.4 (1) -
  edge:      0.9.4 (1) -

And here is the same for a snap in the store:

$ snap info spreedme
name:        spreedme
summary:     "Spreed.ME audio/video calls and conferences feature for the Nextcloud Snap"
publisher:   nextcloud
channels:
  stable:    0.29.2snap1 (18) -
  candidate: 0.29.2snap1 (18) -
  beta:      0.29.2snap1 (10) -
  edge:      0.28.1snap1 (1)  -

Try snap info --verbose to get an even more detailed output. Note that you can pass multiple snap names to this command.

snap find

The snap find command has been expanded to help you discover new interesting snaps from the command line. When ran without a query, snap find now shows a set of featured snaps.

$ snap find
Name               Version   Developer   Notes  Summary
docker             1.11.2-9  canonical   -      The docker app deployment mechanism
lxd                2.6.2     canonical   -      LXD - the container lighervisor
mongo32            3.2.7     niemeyer    -      MongoDB document-oriented database
rocketchat-server  0.47.0    rocketchat  -      Group chat server for 100s,  installed in seconds.

When ran with the --section= option, it filters results based on the section of the store you are browsing. With this release, six sections are available: featured, database, internet-of-things, media, messaging and ops.

$ snap find --section=internet-of-things
Name       Version             Developer  Notes  Summary
openhab    2.0.0.b4-5-offline  canonical  -      openhab 2.0 smart home server, offline versions
nextcloud  10.0.1snap4         nextcloud  -      Nextcloud Server

Observe system changes

You also have a whole battery of commands to observe and control system changes as they happen. To the existing changes, change, abort, has been added the watch command that lets you observe progress of a change.

snap try

Until now, the snap try command allowed you to snap a directory containing an unpackaged snap. It gets even easier, as you can simply run snap try in your snapcraft project, for snapd to retrieve the correct directory and install your in-progress snap for testing.

Have a look at the complete snap command reference for more.

Interfaces

A new release of snapd also means new interfaces for you to expand your snaps capabilities, such as “raw-usb” allowing you to directly access connected USB devices, or “avahi-observe” that lets you browse for mDNS/DNS-SD services on the network using Avahi. Have a look at the list of available interfaces, to see what your snaps can interface with.

Other changes and bug fixes can be found in the changelog for the snapd 2.18 release.

Just the beginning

With snapd 2.19 already in the candidate channel and a new fortnightly release cadence in place, you can expect a fresh batch of updates and improvements every two weeks! Make sure you sign up to the snapcraft mailing-list to stay up-to-date with Ubuntu Core changes and get help with your projects.

If you are looking to get started with snaps and Ubuntu Core, an easy way is to follow the snapping tutorials available… as a snap!

On any Ubuntu Desktop 16.04 LTS, open a terminal and run:

sudo snap install snap-codelabs
xdg-open http://localhost:8123

Once you know your way around (the first snap tutorial takes 20 minutes), why not try joining the #seasonalsnap competition?

Posted in: