April 26, 2016

Ubuntu’s long-term support releases come
with a trade off. New versions come every two years. During that time,
your system stays consistent and receives the latest security updates.
Unlike regular releases, you don’t have to update them every nine months.
But don’t try installing the latest version of software. Chances are your libraries will be out of date.

This isn’t a problem limited to LTS releases or Ubuntu in general.
Even distributions running cutting edge code start looking dated before
the next release. And some software never makes it into the
repositories, regardless of age.
In version 16.04, Ubuntu is hoping to strike a balance between having
stability and staying up-to-date. You won’t just have the option to
install applications via debs. You will also be able to use snaps.

What are Snaps?

Snap packages can contain application binaries and any dependencies needed to run. They stem from click packages, which Canonical developed to package apps for Ubuntu Touch.
Snap packages are coming to Ubuntu 16.04 as a technology preview.
Debs will continue to form the core of the classic desktop and its
Unity7 interface. Click packages will remain the default in Unity8
(which is also a technology preview for now). Consider 16.04 a chance to
meet snaps before developing a more intimate relationship in the
future.

What are the Benefits?

1. Faster and Easier Access to Software

With snaps, developers will no longer have to supply a PPA for Ubuntu users
to get an application and its dependencies. Instead, people can
download a single package and know it will run on their system. This
saves them from having to copy and paste lines of code into a terminal
that they may not understand.
This doesn’t just apply to applications. Snaps could improve access to new versions of desktop environments like GNOME or KDE.

2. Long-Term Reliability

Linux desktop environments and libraries tend to change rapidly. As a
result, software that worked in 2012 may not run on the same computer
four years later. Don’t even bother trying to install an old version of
Firefox, for example.
This is a pain for developers and discourages some of them from
creating software for Linux. After creating an application once, they
have to modify it regularly to keep working in a year or two. And that’s
not even considering all the variations between different
distributions.
Since a snap package provides its own dependencies, the application
should have what it needs to run today, tomorrow, and a couple of years
from now.

3. Isolation and Security

Snap packages run independently of the rest of the system. This means
you don’t have to worry about installation impacting the rest of your
setup. A developer can also patch a vulnerability and immediately send
the fix out to users.
This is a double-edged sword. Since snap packages can make you run
multiple copies of the same dependencies, you have to update each one
when an issue is disclosed. If one developer doesn’t update an
application, you’re left with a compromised version. Traditionally that
would have been fixed when your distribution sent out security updates.

4. Paid Software Support

When you pay for an application, you expect it to work. This makes
maintaining software for Linux especially unappealing to people selling
software. Users expect you to support multiple distributions, with each
changing in unpredictable ways every six months or so.
By using a snap package, a developer knows they have a version that
works. It’s also easier to troubleshoot issues when each copy is the
same.
For these reasons, Canonical plans to migrate paid applications to snaps by autumn of this year.

5. Familiar Development Experience

The mobile market has changed expectations around how software gets
developed and distributed. The specifics may vary between working with
Google Play, the Apple App Store, the Windows Store, and other
marketplaces, but you’re still developing a package and uploading to a
distribution center for review. Snapcraft, Canonical’s tool for building
and packaging snaps, brings a similar experience to Ubuntu developers.

6. You Can Rollback

Not every upgrade goes as planned. Sometimes newer software
introduces bugs that hamper the experience. In some instances,
applications no longer launch at all. In these cases, developers can
undo an update, and users have the option to re-install an old snap that
worked.

How Will This Impact Other Distros?

Snap developers have built the format to work with Unity.
Technically, this means the software can work on other distributions.
But like Unity itself, snaps probably won’t see much adoption outside of
the Ubuntu ecosystem.
This could stir interest in alternative but similar package formats. One example is AppImage, which you can already install on your Linux desktop today. A number of apps are available, such as Atom, Blender, Chromium, Firefox, and VLC.

AppImage is a continuation of Klik, which released back in 2006. It’s not the only one. PortableLinuxApps descended from Klik to create software you can boot from a flash drive.
Regardless of whether snaps appear elsewhere, they could encourage
developers to distribute apps in a package format that works across
distributions and regardless of dependencies. That’s the dream, anyway.
What form reality takes remains to be seen.

Oh Snap, This Could Be Good

Installing software on Linux can be a pain. If it’s in the
repositories, great! If not, you’re left hoping the developer provided a
way to install software on your distribution. Each project has its own
preferred method of managing applications and updates. It’s challenging
to support them all. However at present, we have to be aware that the
snap system could represent a security risk.Image Credit: conveyor belt by Vivi-o via Shutterstock