Ubuntu Snappy – What You Need to Know

Canonical, the company behind Ubuntu Linux, has released a new cloud operating system, called Snappy Ubuntu Core. While Ubuntu Core might be a familiar name to many, meaning a bare-bones, minimalistic Ubuntu system, the new “snappy” approach is not something many would be familiar with. Although Snappy Ubuntu Core is meant for cloud systems, Ubuntu is panning to move its Desktop operating system onto a snappy base in the foreseeable future.

Seasoned Ubuntu users have been quite familiar and comfortable using apt and its front-ends to install deb packages on their systems. But Ubuntu is slowly changing the time tested packaging system to something new named “snappy”. The nomenclature is supposed to indicate the speed improvement this new packaging system brings. According to the Ubuntu Developer website:

The snappy approach is faster, more reliable, and lets us provide stronger security guarantees for apps and users – that’s why we call them “snappy” applications.

Snappy is meant to increase security by means of isolation. Each application and system component will essentially “sit” in its own container. The OS and application files are kept perfectly separate while they remain read-only, meaning they cannot be tampered with.

Apart from increased security, snappy will make both system and application updates easier. The new approach offers “transactional” image-based updates, meaning that an update will either entirely succeed or entirely fail, so no more partial updates leaving systems broken. This would definitely make system maintenance much more reliable, faster and easier for the end user and developer alike.

Even as early adopters try to wrap their heads around what snappy means for them and how to make the best of it, Ubuntu has announced that by 15.10, a new, snappy-based desktop image should be available for download. This, of course, raised even more questions, mostly about the future availability of deb packages and Ubuntu’s relationship with Debian, upon which it is still based.

If you are familiar with apt and use it on your desktop PC or laptop, you can sit back and relax: You need not transition to snappy if you do not want to, at least not for a few years. Ubuntu is making snappy available as a separate spin for its 15.10 “Wiliy Werewolf,” while the main strand will likely remain deb-based.

As from 16.04 onwards, Canonical’s plans are to transition into using snappy more and more. Of course, 16.04 will be the next LTS release, and for this, Canonical is not planning to discontinue using debs: You will be able to choose between a deb and snappy-based system. With 16.04’s three-year support cycle, your debs will be guaranteed to work well into 2019.

That said, the base system of newer iterations of Ubuntu Desktop will likely remain Debian-based; there are no plans to make everything “snappy” just yet.

To have a first “feel” for snappy, if you cannot wait for the 15.10 release, you can give Snappy Ubuntu Core a try. Although the available system image is meant to run in the cloud, with Ubuntu’s instructions you can easily import it into a virtual machine, although it will need some preparing. Probably the easiest way to get Snappy is to try it through Vagrant; that makes deploying disposable Virtualbox images a breeze.

First you need to install vagrant itself:

sudo apt-get update
sudo apt-get install vagrant

Pick or create a directory where you’d like to deploy the Snappy virtual image. In this case, it will be “~/Snappy”

First create the directory

mkdir ~/Snappy

Then change it to

cd ~/Snappy

The vagrant init command will place a “Vagrantfile” here. To prepare for deployment:

vagrant init http://cloud-images.ubuntu.com/snappy/15.04/core/stable/current/core-stable-amd64-vagrant.box

The command

vagrant up

will download a pre-built vagrant-enabled Snappy Ubuntu Core box and fire it up. (You can use the same command later to start up the box).

You can log in with

vagrant ssh

Log into Ubuntu Snappy Core with vagrant ssh.

Once logged in, you can try how snappy works with the below basic functions

First check the system version and basic info:

snappy info

Check the system version and basic info: snappy info.

You will be presented with some minimal information about your system, including installed frameworks and applications. Ubuntu Snappy core is extensible with frameworks such as docker, upon which applications can be built.

Installing frameworks and applications is as straightforward as it was with apt:

sudo snappy install docker

will install the docker framework, while

sudo snappy install hello-world

will install the “hello world” app by Canonical. There is no difference in the installation of frameworks and applications, they all come as “images.” You will also get a nice progress-bar:

Install frameworks and applications in Ubuntu Snappy Core.

Running snappy info again will reflect the changes.

Running snappy info will reflect the changes.

To update the system, a single update command can be used, unlike previously updating (e.g. fetching updated package info) and upgrading (e.g. installing updated packages) as with apt. With snappy, it’s as simple as:

sudo snappy update

Update Ubuntu Snappy Core with: sudo snappy update.

In this case, it has only updated a single package.

To list the installed packages with version information, type

snappy list -v

It shows the minimal set of packages that are installed. It is interesting to note that the base system is present in only two packages, ubuntu-core and generic-amd64. Anything else there you must have installed yourself, or else it came with the virtual image.

Show the minimal set of packages that are installed.

The generic-amd64 package shows two versions here, 1.1 and 1.1.1. The asterik (*) beside 1.1.1 shows that this is the one that is actively used. To revert to the previous version, just use the rollback option:

sudo snappy rollback generic-amd64

snappy list -v will show it has been successful:

To revert to the previous version just use the rollback option.

Snappy also allows you to search for available packages, which at the time of writing are still rather scarce:

snappy search

or you can search for specific keywords, e.g.

snappy search docker

Snappy also allows you to search for available packages.

To learn more about available snappy features, you can use its in-line help

snappy --help

or refer to the tutorials on the Ubuntu Developer Website for more examples. Unfortunately man is not available on Snappy Ubuntu Core by default and there is no snappy package for man yet, so the more detailed man pages are yet to be seen.

Once you have finished with Snappy Ubuntu Core, you can leave the virtual environment by typing


and shut down the virtual Machine with

vagrant halt

To dispose of the Virtual machine use

vagrant destroy

Snappy offers a new approach towards Linux package management, simplifying updates, installations, enhancing security and making it easier for developers to provide everything in a single package that is needed for installation. Snappy is the beginning of something new that has the potential to change the way we think of and use our Ubuntu-based systems in the foreseeable future. While it feels novel and unusual, it is also quite easy and as ergonomic as a command line utility can get.