Ubuntu Snappy in Action – New Generation of Software Management in Linux

Snappy Ubuntu Core is the system for cloud container deployments, bringing transactional/atomar updates using in container platform. General concept – you don’t need an apt-get or other package manager, snappy can manipulate with basic system and application. Installing version a, b, c of software is very easy without dependency hell.

System contain the three layers: system – basic system tools from Ubuntu developers, frameworks layer – extended system layer with external software, and snappy application. Updating and reverting basic image and applications is very easy.

Snappy architecture
Snappy architecture


In this Test Drive we use Ubuntu Core 15.04 running in KVM VM:

$ wget http://releases.ubuntu.com/15.04/ubuntu-15.04-snappy-amd64-generic.img.xz
$ unxz ubuntu-15.04-snappy-amd64-generic.img.xz

$ kvm -m 512 -redir :8090::80 -redir :8022::22 ubuntu-15.04-snappy-amd64-generic.img

Now we can connect to our VM (port 8090 is redirected to port 22). User and password hardcoded to ubuntu:

$ ssh -p 8022 ubuntu@localhost

For beginning let’s check version of Ubuntu Core:

$ sudo snappy info
release: ubuntu-core/15.04/stable
architecture: amd64
frameworks: docker, webdm

List of components (-v – show all version):

$ sudo snappy list -v
Name          Date       Version Developer
ubuntu-core   2015-06-11 3       ubuntu*
webdm         2015-06-11 0.9     *
generic-amd64 2015-06-11 1.1.1
generic-amd64 2015-07-04 1.4     *

Apt-utils don’t work on Ubuntu Core:

$ sudo apt-get update
Ubuntu Core does not use apt-get, see 'snappy --help'!

But we can use snappy for management our software. Try to search software:

$ sudo snappy search ubuntu-core
Name                  Version Summary
webdm                 0.9     webdm
computexintel.mectors 0.0.3   Computex Intel
system-status.victor  1.0.3   System status web portal
beagle.gumstix        0.1     beagle
duovero.gumstix       0.1     duovero
pepper.gumstix        0.1     pepper
overo.gumstix         0.1     overo
panda.gumstix         0.1     panda

And install docker for example:

$ sudo snappy install docker
Installing docker
Starting download of docker
8.36 MB / 8.36 MB [========================================] 100.00 % 2.40 MB/s
Name          Date       Version   Developer
ubuntu-core   2015-06-11 3         ubuntu
docker        2015-07-04
webdm         2015-06-11 0.9
generic-amd64 2015-07-04 1.4

Update software and switch to previous version is easy:

$ sudo snappy update generic-amd64
$ sudo snappy rollback generic-amd64
Setting generic-amd64 to version 1.1.1
Name          Date       Version Developer
generic-amd64 2015-06-11 1.1.1   *

Show configuration of snappy:

$ sudo snappy config ubuntu-core
    autopilot: true
    timezone: Etc/UTC
    hostname: localhost.localdomain


Read also:

Ubuntu Snappy Get Started

Snappy Documentation