Rahul Sharma (Editor)

Snappy (package manager)

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Canonical Ltd.

Operating system
  
Linux

Written in
  
Python, Go

License
  
GPLv3

Initial release
  
9 December 2014; 2 years ago (2014-12-09)

Stable release
  
2.18 / 25 November 2016; 3 months ago (2016-11-25)

Snappy is a software deployment and package management system originally designed and built by Canonical for the Ubuntu phone operating system. The packages, called 'snaps' and the tool for using them 'snapd', work across a range of Linux distributions and allow therefore distro-agnostic upstream software deployment. The system is designed to work for phone, cloud, internet of things and desktop computing.

Contents

Functionality

"Snap" application packages of software are self-contained and work across a range of Linux distributions. This is unlike traditional Linux package management approaches, like APT or RPM, which require specifically adapted packages per Linux distribution on an application update and delay therefore application deployment from developers to their software's end-user. Snaps themselves have no dependency on any external store ("App store"), can be obtained from any source and can be therefore used for upstream software deployment. When snaps are deployed on Ubuntu and other versions of Linux, the Ubuntu app store is used as default back-end, but other stores can be enabled as well.

Developers can use snaps to create command line tools, background services as well as desktop applications. With snap application, upgrades via atomic operation or by deltas are possible.

In June 2016, snapd was ported to a wide range of Linux distributions to enable snaps to be used across any Linux distribution, not just the all-snap Ubuntu Core. snapd is also available or in progress for Arch Linux, CentOS, Debian, Fedora, Gentoo Linux, OpenWrt, openSUSE and Red Hat Enterprise Linux. Each distribution is able to interpret the snap metadata to implement the security or other expectations of the snap in a distribution-specific fashion.

Snapcraft

Snapcraft is a tool for developers to package their programs in the Snap format for Snappy.

snap format

The snap format is a single compressed filesystem that is mounted dynamically by the host operating system, together with declarative metadata that is interpreted by the snap system to set up an appropriately shaped secure sandbox or container for that application. File format extension is .snap .

Reception and usage

Snappy packaging has been deployed in internet of things environments, ranging from consumer-facing products to enterprise device management gateways, and is planned to be used on Ubuntu Touch devices. Snappy is included by default in Ubuntu 16.04 desktop images.

Alternatives

Recent systems with similar goals of distro agnostic and portable software deployment across the Linux distributions are flatpak and AppImage.

References

Snappy (package manager) Wikipedia