Using Snappy Personal from Canonical to manage software

Krzysztof Ratajczak, 123RF

Krzysztof Ratajczak, 123RF

Snapped Together

Canonical wants to leave the Debian package format behind and give Snappy Personal a new lease on life.

Unlike Windows, Linux systems come with a large number of packages. Package management components include a format for the software archives as well as software with a front end for administering the archive.

Until now, Canonical has used the DEB format [1], the dpkg [2] package manager, and Apt [3] as a command-line front end. Additionally, the company offers various tools with a graphical interface that make tasks like installation, deinstallation, and administration of packages easy for users.

These fundamentals will possibly undergo a radical change in the future since Canonical has created its own package format Snappy Personal. This effort belongs to further development of the Click format [4] that was developed for Ubuntu Touch (Figure 1).

Figure 1: The Debian Package management is based on a database that administers most of the aspects of the available software.

From Nix to CoreOS

Snappy originated with the development of Ubuntu Touch, which is the Ubuntu system for mobile devices, as well as from concepts that underlie Snappy Core. Debian's package format is too complex for the future scenario envisioned by Canonical. Consequently, the founder Mark Shuttleworth decided that the apps for the mobile platform were in need of a simpler format to speed up development and populate the Ubuntu App store. This is vital to the success of Ubuntu Touch.

The new package format appeared for the first time in Snappy Ubuntu Core [5] at the beginning of the year. This is Canonical's platform for the Internet of Things (IoT). The format was initially irrelevant for desktop users with the exception of the atomic updates concept, an interesting feature also offered in Snappy Personal. The terminology that Canonical uses is "transactional updates." The feature works by having the server deliver the delta between two files in the form of a Delta file [6] (Figure 2). In the event that an error has occurred, there is an option to undo.

Figure 2: The basic idea behind Snappy is to make it possible for Delta files to formulate very slim updates and to permit backing out of each process if necessary.

Although these ideas have been around for a while, they are just now slowly starting to be used in packages like CoreOS and Red Hat's Atomic given the increasing usage of containers. A similar line of thought is found in an essay written by Systemd developer Lennart Poettering, in which he discusses the future of design of distributions [7].

Total Convergence

Canonical has been devoting almost all of its work efforts during the past two years to the goals of Ubuntu Touch. Primary among these goals is the idea of convergence. Convergence is a concept that if realized would make it possible to use the same software stack for all devices ranging from IoT to smartphones and tablets and extending to notebooks and workstations. As the thinking goes, it would be possible to mutate a smartphone that is connected to a docking station outfitted with input devices into a full-fledged PC. Therefore, it made sense when Canonical announced in June, that they would utilize the new package format as part of Snappy Personal in Ubuntu for desktops.

The current plan calls for the developers of Mir and Unity 8, which will be tested as part of the Ubuntu Next project, to release an image for which Snappy Personal is the only package manager. The image release is scheduled to occur before release of Ubuntu 15.10. Implementing the convergence project in its entirety will take a very long time because, as the project participants predict, there are going to be many obstacles along the way.

One of the first milestones will be to integrate Unity 8 and the internal display manager Mir into the desktop version. Most likely, this will first happen with Ubuntu 16.10. Until then, there is no need for users to worry. The Debian base will stay in place for some time to come even after the change is made. This is also an important consideration for distributions like Linux Mint and others that are based on Ubuntu. As described in the Ubuntu Special Edition, Snappy is taking its first concrete steps with the Erle-Copter drone [8] made by Erle Robotics (Figure 3).

Figure 3: The Erle-Copter from Erle Robotics is the first device to use Snappy Personal.

Differences

In addition to the transactional updates feature referred to previously, an important goal is security. Unlike other formats, the management scripts in Snappy Personal do not require administrators to run with root rights.

Developers are promising more security by means of integration into the software center where AppArmor serves as the security mechanism. Additionally, the packages are isolated from one another. Snappy packages have a much simpler structure than packages from other distributions because they do not define external dependencies. The Snappy package includes all required dependencies and libraries.

Forked Development

Aside from the advantages that have been described, it should be noted that the accompanying dependencies take up more space in the archives and consequently on the user's hard drive. It is still not clear whether it will be possible to reduce the space requirements by deduplication of common package components.

On one hand, Snappy is essentially a return to statically linked software programs and therefore negates 30 years of software development progress toward dynamically linked libraries. On the other hand, there is no problem in operating various versions of the same software next to one another. For other systems, this capability would require some fancy footwork. Snappy packages run on every computer, independent of the status of the remainder of the software. Snappy apps also need less time to get from the developer to the user. Because their structure is quite manageable, it is possible to use automatic tools to check consistency and add the apps as part of a rolling-release mechanism at any time to the contents of the distribution.

Conclusion

Canonical has gone solo in recent years with Unity, Mir, and Upstart. None of these packages represents a definitive break with Debian; however, the departure from a common package format is a radical change. It appears to be a common principle that standard systems for package management cause problems for the developer when they are convenient for the user.

Even Linus Torvalds has complained about the level of effort required in offering packages for different systems. He has stated that the amount of work involved is the biggest obstacle standing in the way of success for Linux on the desktop. Naturally, it will be some years before migration to the new format under Ubuntu is complete. Even then, it remains to be seen whether other distributions will follow suit.