Developers from multiple Linux distributions and companies today announced collaboration on the “snap” universal Linux package format, enabling a single binary package to work perfectly and securely on any Linux desktop, server, cloud or device. This community is working at snapcraft.io to provide a single publication mechanism for any software in any Linux environment. This release quotes Dell, Samsung, the Linux Foundation, The Document Foundation, Krita, Mycroft, Horizon Computing, contributors to Arch, Debian, OpenWrt, Ubuntu, and several of their related distributions.
Snaps now work natively on Arch, Debian, Fedora, Kubuntu, Lubuntu, Ubuntu GNOME, Ubuntu Kylin, Ubuntu MATE, Ubuntu Unity, and Xubuntu. They are currently being validated on CentOS, Elementary, Gentoo, Mint, OpenSUSE, OpenWrt and RHEL, and are easy to enable on other Linux distributions.
Together, these distributions represent the vast majority of common Linux usage on the desktop, server and cloud. A snap package is easy to create and offers significant security benefits, greatly simplifying third-party Linux app distribution.
ISVs benefit from an efficient way to deliver Linux software everywhere
The universal snap format has been welcomed by Linux application vendors. It is a tremendous simplification to publish a snap rather than manage diverse package formats and security update mechanisms across many Linux distributions.
“We strive to offer users a great experience and make Firefox available across many platforms, devices and operating systems. With the introduction of snaps, continually optimizing Firefox will become possible, providing Linux users the most up-to-date features,” said Nick Nguyen, Vice President of Product, Firefox at Mozilla.
“Maintaining .deb packages in a private repository was complex and time consuming, snaps are much easier to maintain, package and distribute. Putting the snap in the store was particularly simple, this is the most streamlined app store I have published software in,” said Boudewijn Rempt, project lead at the Krita Foundation. Krita 3.0 has just been released as a snap which will be updated automatically as newer versions become available.
IoT gateways and smart edge devices benefit from secure updates
Snaps are isolated from one another to guarantee data security, and can be updated or rolled back automatically, making them perfect for connected devices. Multiple vendors have launched snappy IoT devices, enabling a new class of “smart edge” device with IoT app store. Snappy devices receive automatic updates for the base OS, together with updates to the apps installed on the device.
“The IoT market is very diverse, it’s often complex and expensive for device makers to build their full software stack”, said Curtis Sasaki, VP of Ecosystems and IOT General Manager at Samsung Strategy and Innovation Center (SSIC). “That’s why developers creating new products based on Samsung ARTIK modules want the ability to leverage an ecosystem of snaps to accelerate their product lifecycle, and why we are excited to have snaps running on ARTIK”.
“We believe snaps address the security risks and manageability challenges associated with deploying and running multiple third party applications on a single IoT Gateway,” said Jason Shepherd, Director, IoT Strategy and Partnerships, Dell. “This trusted and universal app format is essential for Dell, our IoT Solutions Partners and commercial customers to build a scalable, IT-ready, and vibrant ecosystem of IoT applications.”
“Publishing Mycroft as a snap is a great way to make our technology available across multiple Linux distributions. The ability to update and better secure the software over time is an added bonus. Our decision to snap up Mycroft will reduce the number of package formats we need to support over the long haul, that frees our developers to focus on new features,” said Joshua Montgomery CEO Mycroft AI which is using snaps for a voice-controlled smart-home IoT device.
Easy desktop integration
Snaps are richly integrated through a set of declared interfaces that provide file sharing, device sharing or other services, balancing security with ease of use.
“Our FreeCAD snap has full access to OpenGL and other core services from the desktop environment,” said Jean-Marie Verdun of Horizon Computing, the leading provider of open hardware consulting and equipment in Europe. “Snap interfaces provide secure and easy integration between apps and the system, an elegant solution to the most common problem with containerised apps.”
Server and cloud apps
Snaps also provide easy distribution for cloud and server applications. Installing Jenkins, for example, becomes a single-command exercise on any distribution with snaps. Many cloud and web applications make daily or weekly releases. Snaps enable vendors to move at the speed of the web, while targeting the stable distributions that are popular with their users.
Complementary to existing Linux packages
Snaps sit alongside the native packages of the base Linux operating system. Each distribution has its own mechanisms to provide the base OS and its updates. Snaps complement the base OS with universal apps that cannot interfere with the base OS or one another.
“Snaps deliver new applications to OpenWrt while leaving the core OS unchanged,” said Matteo Croce of OpenWrt. “Snaps are a faster way to deliver a wider range of software to supported OpenWrt access points and routers.”
Enhanced security for apps and devices
Each snap is confined using a range of kernel isolation and security mechanisms, tailored to the snap, ensuring that vulnerabilities in the application are contained to the greatest degree currently possible. A careful review process ensures that snaps only receive the permissions they require to operate. Users do not have to make complex security decisions when installing the snap.
“Security is particularly important when running third-party software,” said Steve Langasek, a Debian developer. “Snaps meet that challenge with robust confinement, neatly addressing many of the risks of apps in sensitive environments.”
Simpler and easier to create
The snap format is simpler than the native internal package formats of individual Linux distributions, because it is focused purely on applications rather than the core system itself. Snaps are essentially self-contained zip files that can be executed very fast in place, making them easy to create.
“Snaps are much easier to create than traditional Linux packages, and allow us to evolve dependencies independent of the base operating system, so we can easily provide the very best and latest Chinese Linux apps to users across all distributions,” said Jack Yu, leader of the popular Chinese Kylin team.
Updated snaps are delivered automatically, improving the flow of features and fixes as well as the feedback cycle both for commercial applications and for open source applications.
Thorsten Behrens, founder and board member of The Document Foundation said, “Our objective is to make LibreOffice easily available to as many users as possible. Snaps enable our users to get the freshest LibreOffice releases across different desktops and distributions quickly, easily and consistently. As a bonus, it should help our release engineers to distribute a more up-to-date LibreOffice that is not based on a bespoke, home-grown and ancient Linux build solution, using a toolchain that is collectively maintained.”
“Ubuntu MATE is delighted to be participating in the snappy initiative, with a goal of eventually snapping the complete MATE desktop. Collaborating with Ubuntu developers and other community contributors is a great way to share experiences and best practice,” said Martin Wimpress project lead of Ubuntu MATE.
Stable, candidate, beta and daily versions
Stable releases, release candidates, beta versions and daily builds of a snap can all be published at the same time, enabling users to preview upcoming releases with different levels of stability.
“Rolling updates are popular in the Arch community,” said Tim Jester-Pfadt, an Arch contributor. “One nice feature of snaps is support for edge and beta channels, which allow users to opt-in to the pre-release developer versions of software or stick with the latest stable versions”.
The beta or edge channels, and the candidate channel, provide a very natural way for developers and their pro users to collaborate on development progress, improving quality and accelerating the pace of releases.
A shared app ecosystem
“Most vendors target Ubuntu because of its popularity,” said Mark Shuttleworth. “Snaps bring those apps to every Linux desktop, server, device or cloud machine, giving users freedom to choose any Linux distribution while retaining access to the best apps.”
The snap format, designed by Canonical, is handled by snapd, a free software project on Github. Porting snapd to a wide range of Linux distributions has proven straightforward, and the community has grown to include contributors from a wide range of Linux backgrounds.
Free software on Github
The snapcore team drives development of the project and includes developers with a wide range of interests, from IoT to cloud infrastructure, mobile phone and end-user desktop applications.
Snap packages are easily created with the snapcraft tool. The home of the project is snapcraft.io which includes a tour and step-by-step guides to snap creation, along with documentation for users and contributors to the project. Snaps can be built from existing distribution packages, but are more commonly built from source for optimization and size efficiency.
From home control to drones, robots and industrial systems, Ubuntu Core and Snaps provide robust security, app stores and reliable updates for all your IoT devices.