April 26, 2016

How Ubuntu 16.04’s New Package Format Makes Installing Software A Snap

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?

Canonical views snaps as the next generation of apps for all Ubuntu devices. Here are some of the reasons why you may want to get excited.

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

Source: http://www.makeuseof.com/tag/ubuntu-16-04s-new-package-format-makes-installing-software-snap/