The open-source Snappy packaging system is moving beyond its Ubuntu Linux roots, as multiple Linux vendors and software developers are embracing it as a way to build an application once that can run on different Linux distributions.
Snappy now runs on several different Linux distributions, including Arch, Debian and Fedora, with CentOS, Elementary, Gentoo, Mint, OpenSUSE, OpenWrt and Red Hat Enterprise Linux support in validation stages.
Snappy debuted in December 2014 as a new way to handle packages for small, embedded systems for Internet of things (IoT) applications. The Snappy packaging system was previewed in the Ubuntu Linux 15.04 release in April 2015, providing a transactional model for software updating that can enable easier patching and improved security. By May 2015, Snappy had already found its way into networking switches and even IoT refrigerators and now Snappy is expanding even further.
“What I didn’t expect to happen is that a bunch of people started to ask about porting Snappy to Arch, Gentoo and other Linux distributions,” Mark Shuttleworth, founder of Ubuntu Linux and Canonical, told eWEEK. “We said sure; it’s open-source, so why not.”
Shuttleworth noted that initially he just expected that individual Snappy packages (called “Snaps”) for specific pieces of software would just be made available for different Linux distributions. What did happen is that Snappy as a packaging system enables software to run unmodified on any Linux operating system that is running Snappy. Shuttleworth noted that Dell and Mozilla are among the organizations that have embraced the Snappy model to deliver the same apps to users, regardless of the Linux distribution being used.
“I care quite a lot about fragmentation in the Linux ecosystem and how that holds back users from choosing the Linux distribution they want, and how software vendors can deliver software to a wide audience of Linux users,” Shuttleworth said.
The concept of building an application once and then having it run anywhere is also one that the Docker container technology promises, though in a very different approach. The Docker Engine runs on top of a Linux host, providing its own abstraction layer for networking, storage and compute services. In contrast, Snappy is a packaging system for applications on an operating system. As such, a Snappy package runs with the same operating system storage and networking elements as a bare-metal application.
Snappy provides additional isolation such that the application is confined and can only see the data that it is authorized to see, Shuttleworth explained.
From a technical perspective, different Linux distributions have their own packaging systems and often include different system libraries. For example, Red Hat has long used the RPM (Red Hat Package Manager) format while Debian Linux-based systems use the DEB packaging format. Snappy abstracts out the complexity by bundling the required application dependencies in the application package.
“Any software library that a software developer wants to ship with an app that isn’t in the base operating system or that a developer doesn’t want to use from the base operating system can just be included,” Shuttleworth said.
With Snappy running on non-Ubuntu operating systems, the Snappy package manager is loading in elements of Ubuntu as a snap package, he said. “So, for example, the Firefox snap package on Fedora Linux actually sees all of the same libraries it would see as if it was running on Ubuntu.”
In the past, there have been other efforts, including one called the Linux Standards Base (LSB) that offered the promise of a baseline of common libraries, that software developers could target on LSB-compliant Linux distributions. Snappy doesn’t make use of LSB, as it doesn’t always guarantee that a specific software library will be present on a Linux system, Shuttleworth explained.
“What Snappy allows us to do is to separate libraries into a set that developers provide with a snap package and a set that the operating system provides,” Shuttleworth said. “It all just works beautifully.”
Sean Michael Kerner is a senior editor at eWEEK and InternetNews.com. Follow him on Twitter @TechJournalist.