Canonical plan for 'Snap' package manager on rival Linux distributions

Canonical's Snappy plan to enable Linux apps to run seamlessly across distributions

Open source software vendor Canonical, the company behind the popular Ubuntu distribution of Linux, is to push its Snap packaging system to other distributions of Linux. The shift will enable developers to build applications that can run seamlessly across different distributions of Linux.

Canonical developed the Snap package format for its Snappy Ubuntu Core build of Linux, along with an accompanying "Snappy" mechanism for delivering updates to the operating system and application code. A key feature of the mechanism is that it is transactional, meaning that updates can be applied easily and just as easily rolled back if required.

Canonical announced on Tuesday that it has collaborated with other players in the Linux community to support Snap as a universal package format, with the aim of enabling a single binary package that can be deployed and run on almost any Linux system, whether it is a server, PC or other device.

Canonical founder Mark Shuttleworth said that after the company enabled Snaps to run on its standard Linux distribution in Ubuntu 16.04, he got a lot of calls from developers looking to enable the same support in other Linux distributions.

"After we announced 16.04, we had an unexpected set of requests from developers of other Linux distros as to whether we would accept patches to port Snaps to other versions of Linux, and so we agreed," he told Computing.

Moreover, the developers have ported it in such a way that the same Snap will run in each environment, effectively enabling developers to create a universal app for Linux.

Snap packages, or Snaps, are now supported natively on Arch, Debian, Fedora and Canonical's various Linux distributions, including Kubuntu, Lubuntu, Ubuntu Unity and Xubuntu.

The format is currently in the process of being validated for CentOS, Elementary, Gentoo, Mint, OpenSUSE, OpenWrt and others, according to Canonical.

Shuttleworth said that Canonical has had contact with Red Hat about the technical details of the Snap port, so it is possible that it may also find its way into Red Hat Enterprise Linux.

"We're kind of stunned, and the ISV community we've been working with is stunned, and the device community is kind of stunned that this has worked out this way. I didn't realise how big this would be," he added.

Snap was not intended to replace existing application package formats, but the growing support for it has apparently been welcomed by developers, including Mozilla, publishers of the Firefox browser, which announced in April that it was to support the Snap format.

"With the introduction of Snaps, continually optimising Firefox will become possible, providing Linux users the most up-to-date features," said Mozilla's vice president of product, Nick Nguyen.

Snap packages are handled by a Snapd Daemon, which applies several kernel mechanisms to keep applications self-contained and isolated from each other and the rest of the system. Each Snap package contains all its dependencies, so is essentially a self-contained file that can be executed very fast in place.

Snapd is available on GitHub, and Canonical claims that porting it to a wide range of Linux distributions should be straightforward.