Ubuntu is about to undergo a dramatic overhaul.
No, I don’t mean the huge shift to a converged Unity 8 desktop with the Mir display server, although that’s also coming. Ubuntu is going to move past Deb packages and apt-get in favor of Snappy, which is currently used for cloud images.
Canonical’s Ubuntu isn’t the only project looking to replace Linux packages with something better. The GNOME project is working on a sandboxed, cross-distribution application package framework.
How traditional Linux packages work
To understand what’s changing, it’s necessary to understand how current Linux package managers work.
Like Debian, Ubuntu currently uses .deb packages. These are basically archives of files that your package manager extracts onto your system, sometimes with additional configuration scripts. Files are placed in system-wide directories on your hard drive. Their libraries go into the system-wide library directory, executables go into the system-wide binary directory, and other resources go into other system-wide directories.
Packages frequently depend on other packages. A package has a list of packages it depends on, and those packages must be installed to install that package. Modern package managers like apt-get deal with this automatically. When you install an application like the GIMP image editor on your Linux system, the package manager automatically downloads the other necessary packages and ensures you have the correct versions installed. Everything is installed system-wide, and packages could potentially interfere with each other.
How Snappy packages are different
Snappy works differently. Applications are no longer installed system-wide. The base Ubuntu operating system is kept securely isolated from applications you install later. Both the base system and Snappy packages are kept as read-only images.
Those applications are installed to separate directories and isolated from each other via the Linux-kernel-based AppArmor system. Snappy packages can include all the libraries and files they need, so they don’t depend on other packages. Ubuntu is currently working on “deduplication” support, which means duplicate copies of files won’t be kept—if two Snappy packages include the same library, it will only be stored in one place on disk.
Snappy also offers “worry-free” transaction updates. An update can never fail, as a package installation could potentially fail and become incomplete with typical Linux packages. Before a package is updated, your data is backed up—if the update fails, everything is rolled back. You can also easily roll back to a previous package version at any time, something that can be tedious with current Linux packages.
Snappy also supports “delta” updates, which means only the changed bits of the package need to be downloaded and installed. The Ubuntu core system can also be updated with Snappy, meaning faster, more-reliable updates also apply to the core operating system.
The future of the Ubuntu desktop is Snappy
That’s great, and it’s all available today for Ubuntu Snappy Core images you might want to host on cloud servers. But Ubuntu’s developers are working on bringing Snappy to the Ubuntu Desktop Next images, where Unity 8 and Mir can currently be seen in action. In a year or two, Snappy-based Ubuntu systems might be standard. Snappy is also coming to Ubuntu phones, replacing the current Click packages in-use there. This means package updates would become faster and more reliable, with better security and isolation between packages.
Snappy desktop will be an alternative image when it arrives. You won’t be forcibly moved from the current, stable Deb package-system to Snappy. But Ubuntu’s developers think the time is right to leave traditional Linux packages behind and replace them with something better.