132

Why Ubuntu dumping .deb packages and moving to .snappy packages? (At least for now they are keeping .deb package for normal distributions). .deb is already the most popular packaging out there.

This gives an idea about what the Snappy package format is. But what will happen to the existing deb packages? Is there any clear advantage on moving to Snappy? Is it worth the pain?

  • 1
    The link is borken – y30 Sep 9 at 12:48
149

Snappy is an attempt to solve one of the fundamental problems with Linux as a desktop operating system and that problem is package availability and package distribution. However, Snappy is not completely intended to replace debs. Snaps and Debs work alongside each other.

I am a Linux enthusiast and a project manager of a Linux application. While I love Linux systems as a whole, I despise the current state of package distribution. Snappy aims to solve this fundamental problem.

In Linux, packages are distro specific for the most part (it's possible to make one DEB that runs in all various different Debian based systems but that limits you in some ways) but not only that packages are distro version specific.

If I create a deb package for Ubuntu 16.04 then that package won't work on any version of Ubuntu. I also have to make a 14.04, 15.04, 15.10, and so on. These are JUST Ubuntu debs. I also need to make one for Debian. Then you need to make RPMs for Fedora 21, 22, 23, etc and those RPMs don't even cover openSUSE.

This means if I want to release a new version of an application and not wait on distro maintainers to include it in a repository (which usually takes an absurd amount of time) then I have to provide over 20 packages to cover the majority of Linux distros and still that's not going to be covering everything.

Ubuntu's Snaps provide a way to create one Snap that runs on every version of Ubuntu that supports Snaps. No longer distro version specific.

Snaps can be integrated into other distros. Potentially no longer distro specific.

Snaps are controlled in a repo that is intended to be maintained by the package developers so when we want to release a new version we don't have to wait on anyone.

Essentially, everything I hate about Linux package distribution will be solved by Snappy. Though it's important to note that these issues would also be solved by AppImages and Flatpaks.

TL;DR

Linux package distribution is awful for both developers and users. Snappy (also AppImages & Flatpaks) are intended to solve this fundamental problem with Linux based systems.


This question is really about why the move but if anyone is interested in learning more about what Snaps are and how they work. I created this video to explain the structure in-depth.

  • 13
    Gosh, you make it sound so hard, except nobody ever supports that many versions of Fedora, Debian, or Ubuntu. By the time 16.04 is out, 15.04 is EOL. By the time Fedora 23 is out, F21 has less than a month of life left, just long enough for people to skip a release. Not that it would matter. Once you've got the base RPM spec file or the base Debian package written, the other distros are tweaked versions, and then it's just a Jenkins job to build them for every new release. – John Franklin Jun 18 '16 at 18:56
  • 10
    Ubuntu packages are made for that many versions: 14.04, 15.10, 16.04 and some continue supporting old LTS like 12.04 which is still supported. || Fedora has no LTS so yea less versions to support but still at least 2 versions with possible 3 versions to support. || What sounds better to you? A. make multiple packages of each version of the same application for one distro and do that for multiple distros. OR B. make one snap for each version of your app and that works on whatever distro and whatever version of said distro. Yea, I vote for snaps in that scenarios. – Michael Tunnell Jul 1 '16 at 15:19
  • 5
    @user447607 You are misunderstanding what Snaps and Snappy is. There isn't going to be a bunch of redundancy, there will be runtimes and there will be options to have snaps depend on other snaps to save space. This is already possible, in fact. Snappy is a different package management system that handles snaps and apt is still involved with DEBs. Snaps do not replace DEBs, instead they augment DEBs so you get a hybrid approach that covers both methods. In fact, Snaps can be automatically generated via existing DEBs. – Michael Tunnell Feb 4 '17 at 21:58
  • 4
    @konung Docker is purely containerization where as Snaps have that as well as integration with system core components. For example, Docker requires everything to be included in the container to use it. However, Snaps only require the necessities to be included and then it could look outside of the snap to utilizes other things. Snaps also have a MUCH better infrastructure because Docker has no real update mechanism but Snaps utilize a similar package management system to APT for Debian. I suggest checking out the video I linked in the original post. I plan to make an updated version soon. – Michael Tunnell Jan 12 '18 at 15:15
  • 7
    @konung Snaps are not containers. A lot of people compare them to Docker for example but Docker is true containers where as Snaps are not. Snaps are container-like but they are not full containers because they allow for exceptions outside of the confinement. For example, the settings/configs/data stuff is stored outside of the Snap inside of the /home folder. This way you can have as many versions of a snap as you want all sharing the same data/configs. – Michael Tunnell Jan 17 '18 at 17:12
20

It's just simple. Snappy package contains all the required files, where .deb packages have dependencies to other packages.

The negative side is that snappy is bigger because it contains all the files. But the big advantage is that you don't get in trouble with other packages and if you remove this package, no other package will be affected by missing dependencies.

  • 7
    It also means security nightmare. Oh, please prove me wrong... because being right would be so horrible. – Jürgen A. Erhard Jun 26 '17 at 19:41
  • 27
    So essentially they are taking the Windows path - which ironically was mocked by Linux-ers in the past. – Pithikos Dec 30 '17 at 22:31
  • 1
    Hey @JürgenA.Erhard, as I understand, each package will have it's own libs, for example cryptography, so instead of verifying one (i.e. self-compiling), you have to basically deal with every package individually, is that what you meant by "security nightmare"? – Ilya Feb 14 '18 at 5:20
  • Correction: "contains all the required files" is not accurate as there are core snaps that act as runtimes. However, this was added after the original answer so it was correct at the time but a lot has changed since then. – Michael Tunnell Mar 8 '18 at 17:46
7

Snappy Personal, their new approach to package management/updating that's designed to be faster, more reliable, transactional, and with stronger security.

Snappy for at least one of their desktop spins -- the plan is to switch Ubuntu's Desktop-Next spin from .deb over to Snappy Personal.

.deb will still there and a normal user can still use it regularly by the time converting the .deb to snappy.

Snappy will be used to unify the concept of package management among the ioT which is using snappy now as its core Os. moreover snappy provide a better way in updating and get rid of problem while update/upgrade since it use the concept of whole image which means the update will be just one piece and therefore no means of fail

Read those articles for more info:

http://www.webupd8.org/2015/04/ubuntu-desktop-to-eventually-switch-to.html

http://www.itworld.com/article/2914850/linux/is-ubuntu-moving-away-from-deb-packages-here-is-the-complete-story.html

There is also a QA video from ubuntu on air that answers a great many questions https://youtu.be/lHO8j8uo5Z4

  • 9
    why can't they make a .deb version 2 package with backward compatibility? Why making a split in linux community?.For now the plan is to slowly migrate to Snappy unless it is utter flop. – Vishnudev K May 5 '15 at 7:05
  • they want to unify the concept of package management among the ioT which is using snappy now as its core Os. moreover snappy provide a better way in updating and get rid of problem while update/upgrade since it use the concept of whole image which means the update will be just one piece and therefore no means of fail – Maythux May 5 '15 at 7:07
  • 3
    Its bad enough with the large variety of methods for packaging in Linux (which already causes issue with third party programs), another one will just make a bigger mess :-/ – Wilf Jul 9 '15 at 9:30
  • @Maythux. What is an ioT? – TRiG May 6 '16 at 9:31
  • 4
    @Maythux xkcd.com/927 – a CVn Feb 1 '17 at 17:40
4

Consider moving to snappy Ubuntu Core today if you are thinking of creating something for others to use, in other words, a product.

The software is delivered in snaps, which given its traits, we can have confidence that installation and upgrades will work on every system as the original creator intended. Other traits are security, such as isolated execution and clean interfaces to talk to the system and configure the installed snaps.

To achieve such a thing, snaps differ a lot from are much different than a debian package:

  • snaps live in an isolated system determined location while debian packages can spread files all over the place.
  • there are no maintainer scripts for snaps.

Going back to the original question of to use or not to use, if you plan to replace your desktop with Ubuntu Core I suggest you stick with regular Ubuntu desktop. Ubuntu Core, I personally like to call, the nothing distro, because alone it is nothing, but provides a very good building block to offer something and this is why it is popular in IoT these days.

  • 3
    In other words its just like what windows does? – Vishnudev K Nov 12 '15 at 13:29
  • 1
    That is a broad question. What does Windows do in particular? – sergiusens Nov 12 '15 at 13:33
  • 4
    I am installing VLC in windows, it install all the packages needed to hog the space. where as in linux we get only the packages we dont have. Its pretty convenient in terms of updates and hdd usage. – Vishnudev K Nov 12 '15 at 13:39
  • 2
    Similar, yes. It is no different to installing an apk on your phone. Applications can evolve with their dependencies as they see fit. There are ways to split this up though, like by using framework snaps, this requires tight security review though. The difference with Windows is that there are not installers here potentially being able to land wherever they want. – sergiusens Nov 12 '15 at 13:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.