|
|
Subscribe / Log in / New account

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Ars Technica reports that Ubuntu's snapd tool has been ported to other Linux distributions. "To install snap packages on non-Ubuntu distributions, Linux desktop and server users will have to first install the newly cross-platform snapd. This daemon verifies the integrity of snap packages, confines them into their own restricted space, and acts as a launcher. Instructions for creating snaps and installing snapd on a variety of distributions are available at this website. Snapd itself is installed as traditional packages on these other operating systems. That means there's a snapd RPM package for Fedora, for example. It's the same snapd code for every Linux distribution, just packaged differently, and applications packaged as snaps should work on any Linux distro running snapd without needing to be re-packaged." Snapd is available for Arch, Debian, and Fedora. It's also being tested by CentOS, Elementary, Gentoo, Mint, openSUSE, OpenWrt and RHEL.

to post comments

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 14, 2016 19:30 UTC (Tue) by pizza (subscriber, #46) [Link] (30 responses)

Libreoffice's x86_64 RPM is 229 MB, whereas an equivalent snap is 1016MB.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 14, 2016 19:45 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (25 responses)

For comparison, https://www.libreoffice.org/download/flatpak/ is 156 MB. If someone in the know can post details on why Snap is so much larger, that would be useful.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 14, 2016 19:50 UTC (Tue) by asaz989 (guest, #67798) [Link] (13 responses)

Snap packages bundle dependencies - it's a very explicit tradeoff of disk space for compatibility issues. For example, here's the list (under 'stage-packages') of libraries bundled in one particular beta release of a LibreOffice snap package:

https://git.launchpad.net/~bjoern-michaelsen/df-libreoffi...

I've heard vague rumblings about deduplication support to reduce this problem at the scale of a whole system (basically a poor man's Nix package manager) but I don't know if that's actually implemented yet.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 14, 2016 19:52 UTC (Tue) by asaz989 (guest, #67798) [Link] (12 responses)

Aaaaand I had no idea what flatpak is. I have *no* idea what's going on to cause the size difference.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 14, 2016 19:58 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link]

I was looking for a response from someone who did understand the term but in any case, some quick references:

http://flatpak.org/
https://whatofhow.wordpress.com/2016/06/01/libreoffice-5-...

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 2:18 UTC (Wed) by drag (guest, #31333) [Link] (10 responses)

I expect that the size difference is due to flatpak shipping the runtime environment separately.

The Gnome or KDE runtimes have the full suite of dependencies needed for their applications. Applications are layered on top of those runtimes. So Libreoffice only needs to bundled dependencies that are not provided by the default runtime.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 11:59 UTC (Wed) by jospoortvliet (guest, #33164) [Link] (9 responses)

So it's dependencies with another name, then? You need runtime X for app Y... Ok, the runtimes are probably bigger and less fine grained but I like that Snaps have NO dependencies, period. And yeah, that makes them bigger - I'm not sure if they're a super solution for 'normal' applications.

For embedded, though, it is great, I think.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 13:30 UTC (Wed) by ovitters (guest, #27950) [Link] (8 responses)

For flatpak runtimes are encouraged, but optional. For Snaps they're technically possible but not available. Snaps do not magically avoid dependencies. E.g. one of the snap packages still relied on a library available everywhere except on Gentoo. This as the library wasn't added to the snap package.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 13:57 UTC (Wed) by alexl (subscriber, #19068) [Link] (6 responses)

What? The apparmour containment should not let the app read some library from the host.

Did they disable the containment support when porting snappy? That makes this pretty worthless.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 16:03 UTC (Wed) by rahulsundaram (subscriber, #21946) [Link] (5 responses)

> Did they disable the containment support when porting snappy? That makes this pretty worthless.

Yep. They did disable on it every distribution but Ubuntu.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 16:22 UTC (Wed) by alexl (subscriber, #19068) [Link] (4 responses)

That is not "porting" it, that is "breaking" it.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 16:43 UTC (Wed) by rahulsundaram (subscriber, #21946) [Link] (3 responses)

> That is not "porting" it, that is "breaking" it.

I feel like you are missing the point.

The current news is primary a marketing move and doing the minimal necessary to get a package running on a number of distros is sufficient for that. The little details like lack of confinement or disabling SELinux doesn't matter much as long as you get more popular software like Firefox and ISV's to buy into it. The technical issues can be fixed later.

The quick takeaway for Flatpak developers should be: Be better at marketing. It really matters.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 18:48 UTC (Wed) by pizza (subscriber, #46) [Link] (2 responses)

> The technical issues can be fixed later.

The famous last words of many a marketing person, eh?

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 19:26 UTC (Wed) by rahulsundaram (subscriber, #21946) [Link]

> The famous last words of many a marketing person, eh?

Most media outlets will look no deeper than the PR. So why not? It is pretty effective.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 19:45 UTC (Wed) by NightMonkey (subscriber, #23051) [Link]

Just put it on my Technical Debit Card.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 23, 2016 6:52 UTC (Thu) by callegar (guest, #16148) [Link]

Aren't dependencies called frameworks in snapland?

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 14, 2016 19:57 UTC (Tue) by asaz989 (guest, #67798) [Link] (4 responses)

So, because my previous comment was uninformed - turns out that flatpak has a lot larger of a common base shared between packages. For example, if you look at the instructions for the LibreOffice flatpak install, it contains a dependency on a GNOME runtime package; by contrast, the Snappy version has to bundle in libgtk and libgconf.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 14, 2016 20:00 UTC (Tue) by asaz989 (guest, #67798) [Link]

(Snappy has support for this in the form of "frameworks", it just seems that there are a lot less upstream libraries packaged as frameworks than there are equivalent flatpak "runtimes".)

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 10:31 UTC (Wed) by nye (subscriber, #51576) [Link] (2 responses)

The thing is though, the Windows MSI package must surely be bundling its dependencies, and that comes in at just over 200MB.

Unless it has a vastly larger set of dependencies on Linux - like bundling an entire OS stack including the full DE - I don't see how this x5 Snappy package can add up.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 17:55 UTC (Wed) by flussence (guest, #85566) [Link]

I remember the days when Op*nOffice was a painful 2 hour download of a 30MB zip, and Firefox was cutting features left and right to fit in 4MB...

Thankfully everyone in the target audience for these things has unmetered, uncapped 1Gbit internet connections! Everyone in a poor or rural area wants to keep using cracked CD versions of Windows/MSOffice anyway, right? /s

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 16, 2016 10:40 UTC (Thu) by hitmark (guest, #34609) [Link]

The Linux snap seems to include GTK etc, while the Windows version can assume that the Windows UI widgets etc will be bundled with the OS.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 1:08 UTC (Wed) by AdamW (subscriber, #48457) [Link] (3 responses)

Well, there's no standard or even best practice for deciding how much stuff goes in the bundle and how much is expected to exist in the underlying system yet, right? So presumably the two just make vastly different choices about where to draw that line. But I haven't looked at flatpak in a huge amount of detail and I've barely looked at snappy at all, just enough to see that they're broadly doing approximately the same thing.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 1:28 UTC (Wed) by rahulsundaram (subscriber, #21946) [Link]

> Well, there's no standard or even best practice for deciding how much stuff goes in the bundle and how much is expected to exist in the underlying system yet, right?

To some extend, for flatpak there is. Flatpak developers have been advocating for a runtime/application split model where apparently large portions of what LibreOffice wants is part of the GNOME runtime and maintained by GNOME developers and not bundled within LibreOffice directly. Also, it appears that snappy could do this as well except that there isn't a GNOME snappy runtime/framework published yet.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 10:25 UTC (Wed) by swilmet (subscriber, #98424) [Link] (1 responses)

> Well, there's no standard or even best practice for deciding how much stuff goes in the bundle and how much is expected to exist in the underlying system yet, right?

For Flatpak (previously known as xdg-app), this email explains the reasoning for what to put in the GNOME runtime and what to bundle with applications.

Not every GNOME library is present in the GNOME Flatpak runtime. What is part of the runtime: libraries that are security sensitive, or libraries that are widely used. For example GtkSourceView and libpeas (plugin system) are not part of the GNOME runtime. But WebKitGTK+ is (and thankfully, because it takes ages to build).

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 17:59 UTC (Wed) by AdamW (subscriber, #48457) [Link]

An email explaining the reasoning behind how a single runtime has been built is not at all the same thing as a standard or best practice for the general case.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 16, 2016 13:32 UTC (Thu) by hunger (subscriber, #36242) [Link]

The LibreOffice snap did contain full debug symbols for everything since it was a beta release. It was apparently updated now, bringing down the size to < 300MiB by removing the debug symbols. For those interested in debugging the beta release there now is a libreoffice-dbg snap, wighting in at about 1GiB.

Source: https://skyfromme.wordpress.com/2016/06/16/a-third-of-a-l...

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 16, 2016 17:57 UTC (Thu) by if.gnu.linux (guest, #88877) [Link]

It seems that it was packages with debug symbols.
https://skyfromme.wordpress.com/2016/06/16/a-third-of-a-l...

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 15, 2016 10:13 UTC (Wed) by eru (subscriber, #2753) [Link]

whereas an equivalent snap is 1016MB.

I wonder, the whole approach sounds similar to linking the application statically, except that a completely statically linked app would gain performance benefits (just read the image into core and run, no runtime linking or indirect jumping around needed).

But I guess modern development style (using explicit loading of .so:s for plugins) and tools make statical linking infeasible, except in the simple cases.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 16, 2016 13:30 UTC (Thu) by fdrs (subscriber, #85858) [Link]

Just to add it here.
The package maintainer did make a post regarding libreoffice snap size.
That build had all debug symbols, at was a beta version.
He did create another snap without debug symbols, and now the package has 287MB, including the JVM.
Here is the post:
https://skyfromme.wordpress.com/2016/06/16/a-third-of-a-l...

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 17, 2016 6:21 UTC (Fri) by voltagex (guest, #86296) [Link] (1 responses)

Gah. The rest of the world is really leaving people on low-bandwidth/low-quota connections behind.

Well, I suppose bundling an entire distro is one way to go about it...

Posted Jun 17, 2016 7:30 UTC (Fri) by halla (subscriber, #14185) [Link]

I am happy to ship USB sticks with Krita on it all over the world: https://krita.org/en/support-us/shop/

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 19:31 UTC (Tue) by Tov (subscriber, #61080) [Link] (4 responses)

Can anyone point to an article describing the technical details of snap and possibly comparing it to flatpak? Preferably an "LWN style" article (hint ;-)

I am especially interested in how it achieves containerization, to what extend packages are distribution agnostic and how these containerized applications will interact with the rest of the system (e.g. file system).

Thanks.

Old man yells at cloud.

Posted Jun 14, 2016 20:02 UTC (Tue) by leoc (guest, #39773) [Link]

And AppImage. I'd also love to see an LWN article comparing and contrasting all these newfangled packaging systems.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:25 UTC (Tue) by zyga (subscriber, #81533) [Link] (1 responses)

Hey

I'm an upstream developer on snapd and snap-confine. I am working on an article that describes snap confinement system. If you wait a few days I will link it here.

Regards
ZK

Article? Link?

Posted Jun 17, 2016 16:01 UTC (Fri) by kena (subscriber, #2735) [Link]

Yes, plz, and thanks!

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 16, 2016 2:15 UTC (Thu) by liam (guest, #84133) [Link]

It's not an article, and it's probably not unbiased, but, here you go:
https://github.com/probonopd/AppImageKit/wiki/Similar-pro...

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 19:44 UTC (Tue) by lkundrak (subscriber, #43452) [Link] (4 responses)

Really? On my Fedora 24:
# dnf install /usr/bin/snap
No package /usr/bin/snap available.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 20:26 UTC (Tue) by thomas.poulsen (subscriber, #22480) [Link] (3 responses)

From http://snapcraft.io:

To enable this repository type:

sudo dnf copr enable zyga/snapcore
To install snapd type:
sudo dnf install snapd and log-out or reboot

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 20:32 UTC (Tue) by rahulsundaram (subscriber, #21946) [Link] (2 responses)

You are missing part of the instructions from http://snapcraft.io/

"Important: on Fedora 24 you currently have to switch SELinux to permissive mode. This restriction will be lifted later. Please edit /etc/selinux/config and change the file to contain SELINUX=permissive. After this change you have to reboot your system.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:02 UTC (Tue) by sjj (guest, #2020) [Link] (1 responses)

Sigh... Well, it's early days yet, but seems I'm going to test this in a VM.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:34 UTC (Tue) by zyga (subscriber, #81533) [Link]

BTW, all of the packaging is open to contributions. I would like the packages to mature in COPR so that they can be submitted to Fedora properly.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 20:25 UTC (Tue) by cyperpunks (subscriber, #39406) [Link] (23 responses)

Cool! At last some real innovation in Linux packaging.

Size of snaps don't bother me much if diff download size of updated snap is sensible.

I also hope this means I can have fairly stable base OS (RHEL or Ubuntu LTS lifecycle)
and combine with always fresh versions of Firefox, Thunderbird, Emacs etc.

Even packages like gcc and friends (as in devtoolset) are very welcome as snaps.

RHEL did a mistake going with rpm based Software Collection, they should have created
something like snap instead (flatpak is far late too).

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 20:39 UTC (Tue) by evad (subscriber, #60553) [Link] (5 responses)

Could not agree more regarding Software Collections, they are so utterly useless hidden away behind a horrible scl enable command.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:14 UTC (Tue) by sjj (guest, #2020) [Link] (4 responses)

This is true, but maybe Collections was a reasonable first iteration (I don't know the exact timeline of these techs). Its focus seems more enterprisy (coming from RH) than end-user (Canonical) too.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 1:12 UTC (Wed) by AdamW (subscriber, #48457) [Link] (2 responses)

scl wasn't a 'first iteration' of flatpak/xdg-app, they're entirely separate things that emerged from different processes in different groups, though they're sort of trying to solve some of the same problems.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 10:33 UTC (Wed) by swilmet (subscriber, #98424) [Link]

Flatpak is just for desktop applications.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 20:57 UTC (Wed) by sjj (guest, #2020) [Link]

Yes, I know this much. Sorry for being unclear, I meant more like _a_ first iteration of the concept (resulting in something that has too much of the underlying structure visible).

I truly wish that these groups could come to an understanding of a standard, or we'll just end up with several almost-but-not-quite-the-same stacks.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 3:00 UTC (Wed) by rahulsundaram (subscriber, #21946) [Link]

scl is useful and I have used it for work. We can expose different versions using the same commands based on the environment and scl makes this easy to accomplish.

...Let the next round of GPL compliance headaches begin.

Posted Jun 14, 2016 21:17 UTC (Tue) by pizza (subscriber, #46) [Link]

I hope the folks intending to distribute these 1GB snap packages containing half a distro's worth of libraries have a strategy in place to provide complete corresponding source code to everything they bundle.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:17 UTC (Tue) by callegar (guest, #16148) [Link] (8 responses)

Now, there are a few things unclear to me.

Apart from the fact that it should provide better "isolation" between different applications, everybody seems to welcome this format on the basis that it "avoids dependencies" by bundling all libraries in each software package. Yet, this has somehow been possible even with the traditional packaging formats (even if distros were obviously trying not to do it by any means). Many debs or rpm exist (mainly for commercial applications) that literally pack in everything.

Furthermore, it looks like the proponents of these formats saw that it was not possible to really bundle everything and introduced "frameworks", that look a lot like "dependencies" but at a much coarser resolution than what distros made us used to. Hence, it seems that the main point is the trade off that exists in the framework "coarseness".

Finally, I am trying to think of some practical cases. Suppose that I want to package the "asymptote" vector drawing program. This uses TeX internally. Should the huge texlive be incorporated in the much smaller asymptote package? Or should texlive be a framework that asymptote depends on? And if so, how much of texlive should go in the framework? All of it or just a subset? And if it is just a subset, will asymptote be able to use parts of texlive that are not in the framework by letting one install them later as other packages?

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:25 UTC (Tue) by pizza (subscriber, #46) [Link]

> All of it or just a subset? And if it is just a subset, will asymptote be able to use parts of texlive that are not in the framework by letting one install them later as other packages?

If the answer is anything other than "All of it" then they are just setting themselves up for some major headaches down the line as they'll be forced to re-learn the lessons that Linux distros took to heart two decades ago.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 2:55 UTC (Wed) by drag (guest, #31333) [Link] (6 responses)

> Finally, I am trying to think of some practical cases. Suppose that I want to package the "asymptote" vector drawing program. This uses TeX internally. Should the huge texlive be incorporated in the much smaller asymptote package?

What does your application require to run?

Your goal here isn't to boil the oceans. Your goal is to ship a running application. Your container does not need to do anything beyond that.

If your application requires the entire Texlive to be bundled then that is what you will have to do. If it only requires the asymptote package then just include that.

This is up for you to decide.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 8:21 UTC (Wed) by mjthayer (guest, #39183) [Link] (4 responses)

I have often wondered about the same thing, but with regard to Python. On the whole you could also make a good argument for just bundling that too, but relying on the system Python also provides a good way for interacting with the system GUI libraries and getting the style right (and probably many other similar things). I'm sure that how to write the Python application so that it actually works on all the target systems (which will not even all use the same GUI library) would provide enough material for a goodly sized book, and you would probably do well to bundle quite a bit of dedicated Python code to simplify the job.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 12:15 UTC (Wed) by jospoortvliet (guest, #33164) [Link] (2 responses)

Honestly I don't think all apps are suitable as a snap, at least not yet. Perhaps in the future.

In any case, I see it more useful as a server tool, to be honest. Then again, the ownCloud and already-done Nextcloud snap is all I've played with of course...

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 12:33 UTC (Wed) by pizza (subscriber, #46) [Link] (1 responses)

> In any case, I see it more useful as a server tool, to be honest. Then again, the ownCloud and already-done Nextcloud snap is all I've played with of course...

Okay, I want to install two snaps that provide some independent web services. Let's say.. oh, wordpress and owncloud. How's that going to work?

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 20:27 UTC (Wed) by drag (guest, #31333) [Link]

I guess you'd have to configure them to use different ports.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 14:56 UTC (Wed) by drag (guest, #31333) [Link]

> I'm sure that how to write the Python application so that it actually works on all the target systems (which will not even all use the same GUI library) would provide enough material for a goodly sized book, and you would probably do well to bundle quite a bit of dedicated Python code to simplify the job.

For containers intended to run network services (ie docker) the ideal approach is to ruthlessly strip out anything you don't need.

This is one of the reasons why golang is popular (besides specifically adapted for network services). You can compile statically so you know for a fact it will have everything it needs in it's binary. The 'container' then consists of just dropping the binary into a directory.

This way to launch a new service or perform a new update the downtime caused by downloads is measured in a few KB rather then hundreds of MB. The container's major advantage over full VMs is just how fast it is. If you are using a proper 'CI' service like Jenkins to pull and copy code and send it to containers for unit testing it's very nice to get results in seconds rather then minutes. Also if you are doing on-demand services then even if a container never been deployed before on a physical host the time it takes for that physical host to copy down the container and respond is critical. If you can reduce the response time to sub-handful-of-seconds then that cuts out of a lot of infrastructure you need in place to handle user requests and such things.

Python you can do similar things. There are various modules for doing static building. 'pyinstaller' is one, but there are others.

So, for example...

I can use pyenv to setup multiple python installations in my homedir. I can switch between them and set python versions for 'shell', 'local' (directory/project), and 'global'. I can then use 'pip' to install any library or python program that pip provides. Each python version is independent. Then I can add Pyenv support to Emacs and have Emacs know which version of python to use with whatever script I am editing.

I can then set up the similar environment, but built for RHEL6 on a remote machine. I can copy the python scripts I want over to that and then build a static binary for my python script. Because my scripts are written for other people to use on machines I don't control I can just give them this binary and have them execute it on anything newer then EL6 and it should 'just work'.

That is extremely convenient. I can use python 2.7.11 or 3.whatever and have it 'just work'.

Now there are problems, of course. Python wasn't designed to do this so I have occasional problems with complicated modules or C modules.. like 'requests' is something I have trouble with. This is one of the reasons I am interested in golang.

How does all that translate to desktop applications though?

I don't know. Increasingly use of containers for network services is becoming perfected, but for desktop applications in Linux it's still a very unknown.

I have also been thinking about things like IPFS... 'the InterPlanetary File System'. So this is something that is meant to augment the WWW. Files are referenced by hashes and those hashes are made available by anybody that downloads a file. So this way if you used a website or accessed a file when your machine is online it doesn't go away when you disconnect temporarily. If somebody deletes the file then it doesn't go away as long as somebody else doesn't have it deleted. It's very P2P, very distributed, very scalable. It's currently fast enough you can stream HD media files and seek in them as they are being downloaded and it 'just works just fine'.

It can be exposed to posix-land via fuse file system.

So what if in the future 'application installation' in Linux consists of you logging into a web page and mounting a fuse file system. All possible containers of all possible versions of all possible software is available for you to use immediately. A read-only ipfs fuse mount with a read-write layer on top of it. You have a website to help you manage the apps you want to use and to perform a 'security update' is as easy as killing your running program and then starting it back up. Updates are atomic, roll backs are instantaneous. If a dependency is missing or breaking something then it can be fixed upstream and instantaneously be made available to anybody running any Linux with a internet connection. Containers are only downloaded when you use them and getting disconnected from the internet doesn't mean you lose anything that you've already started running.

I think that containers with file system images like what you can do with snappy or flatpak could go a long way to making it so no Linux user will ever need to install software ever again.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 16, 2016 9:40 UTC (Thu) by callegar (guest, #16148) [Link]

Now, asymptote may need /any/ functionality of TeX. Asymptote is code to basically compile a textual description of a mathematical plot into the plot itself. Since TeX is used internally to format equations, captions and small text, the asymptote source code may end up using any TeX functionality. With conventional packaging, things are very easy: asymptote comes to depend onto a minimal set of TeX, sufficient for it to work most of the time and to error out nicely if it does not find some TeX functionality (some "TeX package", in the TeX wording of things). In this case it is easy to add to the system the package providing the missing "TeX package" and retry.

Would that be possible/easy with snap packages?

- If this minimal TeX subset is incorporated in the asymptote package, will it be possible for the user to later install extra "TeX packages" on the system and have this TeX that is somehow private to asymptote find and use them? TeX is very picky on where things are placed on the system and builds its own indexes for finding things. Where should these extra TeX bits go? In the data area of the asymptote package or as other snaps?

- Alternatively, if TeX is made into a framework and, for obvious reason, it is not made to contain the whole world of TeX which is impractically huge, will it be possible for the user to later install some extra stuff to extend the framework functionality as needed? Will that need to use the TeXlive package manager so that two layers of package management (snap and Texlive) will be needed anyway?

- How is this going to be standardized? Is there going to be an "official" TeX framework or multiple competing ones? Will it be possible to have different frameworks (say TeXliveA and TeXliveB) declare that they both provide TeX and for a snap package to declare that its dependency can be satisfied by any framework providing this TeX functionality?

The trade off in how dependency on frameworks should be specified and used is something that is not completely clear to me at this point and I would be glad to anyone capable of offering some insight.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 1:11 UTC (Wed) by AdamW (subscriber, #48457) [Link] (5 responses)

flatpak has existed for more or less exactly as long as snappy (at least so far as my half-assed research this morning backs up my memory).

flatpak is just a rebranding of xdg-app (which is kind of an implicit recognition that snappy has been winning the PR race so far). The first commit to xdg-app's git repo came in December 2014, which is also when Canonical first announced snappy (as 'Ubuntu Core Snappy Edition With Go Faster Stripes' or something like that).

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 2:06 UTC (Wed) by drag (guest, #31333) [Link] (4 responses)

Snappy is derived from Ubuntu's phone project. Outside of Canonical I think the first time it was made public was when the beta released in 2014.

Flatpak/xdg-app is slightly newer, but the packaging functionality used in the 'runtime' generation and management is OSTree, which has been around since 2012.

OSTree has been used in Redhat's 'Project Atomic' which is a attempt to make a competitive cloud computing platform. They have Atomic Fedora and Atomic CentOS. They use 'rpm-ostree' to take binaries from rpm packages and build their OS images. It's worth checking out.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 2:58 UTC (Wed) by AdamW (subscriber, #48457) [Link]

I work for Red Hat, I know about it. =) But I'm trying to be even handed.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 3:13 UTC (Wed) by rahulsundaram (subscriber, #21946) [Link] (2 responses)

> Snappy is derived from Ubuntu's phone project.

If we are talking about history, it should be noted that flatpak is derived from glick

https://2016.guadec.org/author/muelli/
https://blogs.gnome.org/alexl/2007/08/21/glick-01-released/

And of course, AppImage is based on Klik which is older than other solutions.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 12:21 UTC (Wed) by jospoortvliet (guest, #33164) [Link] (1 responses)

Then again, the Snappy guys talked about Klik (the predecessor of Glick) too, dunno if they can claim it is based on that or not though ;-)

Klik sure was an interesting technology, yes.

https://www.linux.com/news/one-click-installation-klik

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 12:51 UTC (Wed) by halla (subscriber, #14185) [Link]

We gave klik a try back in the day, but the technology wasn't ripe -- and I was too ignorant, too, I think:

http://www.valdyas.org/fading/index.cgi/hacking/krita/kli...

http://lwn.net/Articles/153158/

https://blogs.kde.org/2006/02/07/klik-ing-koffice-150-bet...

Gosh, that's really ten years ago now!

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 17, 2016 10:14 UTC (Fri) by walex (guest, #69836) [Link]

«fairly stable base OS (RHEL or Ubuntu LTS lifecycle) and combine with always fresh versions of Firefox, Thunderbird, Emacs etc.»

For that you don't need a new un-packaging format, just a different distribution policy. Currently most distributions have either a "rarely updated runtime/rarely updated apps" or a "continuously update runtime/continuously updated apps" policy, but other combinations are possible.

Things like Snap/Flatpak/Docker/... are designed instead to enable an "appstore" business model and thus to establish DLL-hell which shifts a large chunk of system maintenance to developers; what you hope with Snap is that you maintain the base system and the developers of «Firefox, Thunderbird, Emacs etc.» maintain those chunks of your system, for free. We'll see :-).

Note: there are two types of DLL-hell. I am referring to the "this library is stored in many copies on the system in random places" type of DLL-hell.

Closed source software

Posted Jun 14, 2016 20:34 UTC (Tue) by mm7323 (subscriber, #87386) [Link] (12 responses)

Traditionally it has been very tedious to package closed source software for Linux. Each distro has different library versions, package managers, package names and file layouts. While it was a step in the right direction, I don't think the LSB work really got close enough to addressing many of these issues. Static linking apps any size takes a lot of effort, and distros don't make it easy - not providing .a files for some common libs, and some using dlopen() to effectively break static linking all together.

When discussed before, I often noted the community really didn't want closed source packages and a lot of distros have a goal of openness. This I understand, though it does seem to raise a barrier to a lot of useful software on Linux.

I hope these snaps are finally a way to enable more closed source software on Linux, in an acceptable way to the community, and without compromising security (like static linking can).

Closed source software

Posted Jun 14, 2016 20:46 UTC (Tue) by halla (subscriber, #14185) [Link] (3 responses)

"Traditionally it has been very tedious to package closed source software for Linux. "

Not just closed-source software. Any application that's big, used for productive work and updates often has that problem. No way Krita users are going to be happy with Krita 2.9.7 on Ubuntu 16.04 for the duration of the LTS. I've got users on 12.04, still, and CentOS 6.5.

And even some rather endearingly deranged demands for support for Ubuntu 10.04 -- but since there was no chance of money changing hands, I told them to go and build it themselves.

Closed source software

Posted Jun 15, 2016 11:44 UTC (Wed) by k8to (guest, #15413) [Link] (2 responses)

I work on some "enterprise" software. At one point we chose to release an optional component for our software which was not fully isolated from the distribution's world of configuration and libraries. (Normally we rely on libc & friends, and typical stuff like the system olson TZ database, and not much more.)

I had to work on a "bug" which turned out to be a case where SuSE froze a beta version of a library in 2006, which was buggy, and because it was their "enterprise" distribution they kept shipping the buggy library for a 6 months or a year or similar. I didn't dig far enough, but suspect there were probably optional updates to the distribution that our mutual customer wasn't organized enough to install.

The bug was fixed in the upstream project before SuSE shipped that release. I encountered the bug in 2014, 8 years later than the SuSE release. Luckily that version of Linux was so old it did not fall under our carte blanche "any linux of rev x or later" that we support, so I didn't have to completely repackage our optional component to hide the 8 year old bug that the upstream project never included in a general non-beta release.

Users have somewhat odd ideas about what versions of software to use sometimes.

Closed source software

Posted Jun 15, 2016 12:23 UTC (Wed) by jospoortvliet (guest, #33164) [Link] (1 responses)

Note that in cases like these you can contact SUSE or RH and they often will update/fix the package/bug. As long as binary compatibility isn't harmed it is not difficult to convince them.

Closed source software

Posted Jun 15, 2016 12:49 UTC (Wed) by evad (subscriber, #60553) [Link]

They often take 6 to 9 months to do that though. Been waiting for RH support to fix bugs for up to a year before.

Closed source software

Posted Jun 14, 2016 21:23 UTC (Tue) by hitmark (guest, #34609) [Link]

A large part of the problem there have been the package managers.

If you have one program that can't work with newer than lib-1.0, while another needed lib-1.1 or newer, you had play silly name games with the lib packages, and thus the dependencies of other packages for the package manager to play along.

Now hop on over to Gobolinux, where each lib version is given its own branch in the directory tree, the problem largely evaporates.

This because unix from times immemorial have had mechanisms for dealing with multiple lib versions, and the GNU tools provide them to the Linux ecosystem.

Or you can go one further and look at Nix/Guix, where even compile time differences are taken into account when creating branches.

What the likes of Snap and xdg-app/flatpak is doing is just wrapping all that in containers/cgroups to be fancy.

Closed source software

Posted Jun 15, 2016 0:05 UTC (Wed) by Wol (subscriber, #4433) [Link] (5 responses)

> I don't think the LSB work really got close enough to addressing many of these issues.

I don't think the LSB *tried* to address these issues. What they did was to define a bunch of packages that the package manager would make available to apps. What they *should* (imho) have done was tried to define a way for the app to tell the package manager what was required.

They tackled the problem from the wrong end ...

Cheers,
Wol

What about the next heartbleed bug?

Posted Jun 15, 2016 6:06 UTC (Wed) by shemminger (subscriber, #5739) [Link] (4 responses)

All this "bundle all the libraries into one big blob" is a security disaster wating to happen.
Think of what will happen when 10 applications all use one library with a security bug. Since there are 10 copies, you
can't just update the openssl package.

Unless you take the Google Chrome/Chromium model of update early and often, it will lead to security bugs never getting fixed.

What about the next heartbleed bug?

Posted Jun 15, 2016 7:25 UTC (Wed) by mm7323 (subscriber, #87386) [Link] (3 responses)

This is also one of the arguments against static linking, and I don't disagree.

At least in this case it looks like there is some infrastructure around a snap and some metadata so it is at least theoretically possible to record build inputs and later warn if any are afflicted by security issues. That said, I don't see if snaps support or plan support for such functionality.

It also looks like snaps have a privilege model (plug and slots) to add some hardening to each app, though I don't think there has been a useful sandbox in history that hasn't been compromised at one time or another. That's not to say that sandboxes don't have a lot of value though.

What about the next heartbleed bug?

Posted Jun 15, 2016 8:12 UTC (Wed) by mjthayer (guest, #39183) [Link] (2 responses)

Generally I would have thought that you want to outsource the security part. My naive thought for making statically built applications has always been to build them on a well-maintained Linux distribution using system packages and have a script which checks and notifies you when said packages get security updates. This could easily be automated further; but the same result could also be achieved in any number of other ways (like having all security-relevant libraries in an external flatpak runtime; although most likely anything that you still choose to bundle could be security-relevant in one way or another).

What about the next heartbleed bug?

Posted Jun 15, 2016 9:11 UTC (Wed) by mm7323 (subscriber, #87386) [Link] (1 responses)

I was hoping that snaps themselves would contain the relevant meta data to enable _end users_ to determine when a snap contains security bugs. This would allow end users to either ask/pressure the developer for an update, try to rebuild an update themselves (if source is available), or uninstall completely.

With just the blob of a statically linked application it becomes quite difficult to determine which libraries and their specific versions have been included in a build, depending on how well the library is versioned and how agressive the compiler has been at discarding unused code and data.

What about the next heartbleed bug?

Posted Jun 15, 2016 9:48 UTC (Wed) by mjthayer (guest, #39183) [Link]

To be honest, I think that both - a working mechanism for getting security fixes to the user without their needing to worry, and a way of them finding out if they still do prefer to worry - would be good to have.

Closed source software

Posted Jun 15, 2016 22:26 UTC (Wed) by HenrikH (subscriber, #31152) [Link]

I wouldn't call it tedious. All that I had to do was to build a build server that basically just contains a number of chroot's for the distributions that we want to target and then I have a build script that can be called with "build <package.tar.gz> that copies the tarball to all the chroot's, unpacks it, basically runs "./configure && make && make install" where the make install part creates deb's or rpm's.

No need to worry about different library versions, package managers of package names (who really cares if your propitiatory package does not exactly match the naming standard of distribution X?) and file layouts is a moot point for propitiatory packages anyway since they should all install into /opt/ anyway on all distributions.

Of course that would not build a single package for all to download, i.e the "how we are used to work on Windows" model which perhaps is the main problem here since those developers are used to how things work over there and expect Linux to be just like that but slightly different.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 20:42 UTC (Tue) by halla (subscriber, #14185) [Link] (3 responses)

Well, I am impressed. Michael Hall basically wrote a snapcraft.yaml for krita, which is a big, complex app with a bunch of dependencies. It took only a few days and a few iterations to get it right, and pushing the result to Ubuntu's appstore was really easy for me. And now they made it run on other distributions, too. That's pretty amazing to my mind.

Making appimages was harder, but appimages run everywhere, even on older distributions, even where there's no runtime, so that's a big advantage. And I know how to handle translations with appimages, I don't know yet with snap.

As for flatpak, I've heard that people were trying to package Krita using flatpack, but I haven't seen results yet.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:09 UTC (Tue) by alexl (subscriber, #19068) [Link] (1 responses)

Flatpak runtimes for kde are here (work in progress):
https://community.kde.org/Flatpak

It seems that krita is in the git repo for apps that have been built, but i can't find a built version of it.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 22:10 UTC (Tue) by andreasn1 (guest, #88420) [Link]

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 21:09 UTC (Tue) by sjj (guest, #2020) [Link]

Good to hear from somebody who works on a big app. Thanks for Krita BTW - I just wish I had some graphical artistic ability...

I'm really happy that they went with a wide release. I suspect becoming a (/"The") Linux Appstore is part of this strategy. Maybe we'll actually get a Year of Linux Desktop!

Snaps for gaming?

Posted Jun 14, 2016 21:09 UTC (Tue) by abatters (✭ supporter ✭, #6932) [Link] (11 responses)

I have never used Steam (from Valve), but I plan to install it as soon as I put together a new computer for gaming. I am curious if others think that snaps would be useful for things like containing the Steam runtime. I have heard that there are occasional conflicts between packages that the base Linux OS (e.g. Debian) wants to install vs. the versions that Steam wants to install. Thoughts?

Snaps for gaming?

Posted Jun 14, 2016 21:32 UTC (Tue) by zyga (subscriber, #81533) [Link]

With my snapd upstream developer hat I'm pretty sure it is possible to put steam in a snap. Internally it would still do its thing, download games and install them into one big virtual home directory. It would be interesting to explore what e.g. GOG could do if they switched to snaps for their linux game packages.

On distributions with the right kernel features enabled you could run them with strong confinement (X11 notwithstanding) for an added layer of security.

Snaps for gaming?

Posted Jun 15, 2016 17:31 UTC (Wed) by fandingo (guest, #67019) [Link] (9 responses)

It's important to keep in mind that the Steam client does it's own updates. The distro package just pulls in dependencies and essentially a Steam launcher. The client you end up running is installed in your homedir by Steam (not your package manager). This is very Windows-like, but I like it. I use a distro which doesn't have an official Steam package (instead a community member repackages Ubuntu's Deb), and it's nice that Steam does it's own thing. I never have to worry about a delay in an update to the system package breaking my ability to play.

> I have heard that there are occasional conflicts between packages that the base Linux OS (e.g. Debian) wants to install vs. the versions that Steam wants to install.

Probably just initial teething issues with packaging new software and a vendor getting used to a new platform. I've never seen any material issues, and beyond users misunderstanding 32-bit requirements, I can't recall any issues in my 2 years of using it.

It would be trivial to distribute Steam in a Snap, but you'd see the same behavior where the shipped app just bootstraps an per-user installation in ~/. Of course they could change to shipping a Snap and hosting updates through that mechanism. However, I believe it works this way at present because it works on all supported operating systems: OS X, Windows, and Linux. The minority platform is unlikely to get special treatment.

Snaps for gaming?

Posted Jun 17, 2016 10:31 UTC (Fri) by walex (guest, #69836) [Link] (1 responses)

«the Steam client does it's own updates. The distro package just pulls in dependencies»

That's in essence the appstore/Snap/Flatpak/... model too: the whole purpose of "containers" is to hand over the cost of maintaining the app in the container to the developer of the app.

Snaps for gaming?

Posted Jun 17, 2016 16:02 UTC (Fri) by fandingo (guest, #67019) [Link]

Actually, it's quite a bit different. How Steam currently works requires a package installed to a privileged system location, and for everything but Ubuntu, that package was written by your distro/community, not the Valve. The difference is that the real, updated program is installed to a separate unprivileged area (your homedir). You've installed two separate apps: a Steam bootstrapper through your distro package manager, and a copy of Steam in your homedir.

Snaps for gaming?

Posted Jun 19, 2016 21:15 UTC (Sun) by oak (guest, #2786) [Link] (6 responses)

> Probably just initial teething issues with packaging new software and a vendor getting used to a new platform. I've never seen any material issues, and beyond users misunderstanding 32-bit requirements, I can't recall any issues in my 2 years of using it.

As-is, Steam doesn't currently work on Ubuntu 16.04 with any 3D drivers than use libstdc++:
https://bugs.launchpad.net/ubuntu/+source/steam/+bug/1527669

3D drivers' use distros' C++ library, Steam bundles it's own (from ancient Ubuntu version), and there was libstdc++ ABI change last year, so they conflict. While the issue is trivial to workaround, bundles can't include 3D drivers because they're too fast moving target (there are all the time new GPU versions that need updated driver), so they would need to updated for system changes like this...

Snaps for gaming?

Posted Jun 20, 2016 8:36 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (5 responses)

The correct action, of course, is NOT to depend on system stdlibc++. It can be done with a bit of effort but at this point it's probably easier to just use musl+libc++.

Snaps for gaming?

Posted Jun 20, 2016 17:40 UTC (Mon) by zlynx (guest, #2285) [Link] (4 responses)

When the userspace GPU driver uses system libc++, are you suggesting they should just use C instead?

Snaps for gaming?

Posted Jun 20, 2016 20:30 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (3 responses)

libc++ and musl can be compiled statically, so that several copies of them can live inside the same address space.

Snaps for gaming?

Posted Jun 20, 2016 20:42 UTC (Mon) by zlynx (guest, #2285) [Link] (2 responses)

I suppose that would work as long as the code never, ever passes objects with vtables, exceptions, or uses RTTI between the static blobs.

Snaps for gaming?

Posted Jun 20, 2016 21:19 UTC (Mon) by excors (subscriber, #95769) [Link]

and doesn't allocate memory in one module then free it in a different one, since they'll have separate heap implementations with no shared state, which means you're unable to use pretty much any interesting C++ object in the interface between modules.

That's already a common problem on Windows even with dynamic linking - every version of MSVC has a different CRT, and debug vs release builds have different CRTs, so you need to either compile your whole dependency tree with the same compiler and similar compiler flags, or limit all your APIs to either plain C or very carefully restricted C++ with lots of custom wrapper types.

That's not much fun, but if you're already designing your code with those limitations then statically linking the CRT shouldn't make it that much worse.

Snaps for gaming?

Posted Jun 20, 2016 21:32 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link]

Since we're talking about low-level libraries like Mesa - that's perfectly OK.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 14, 2016 22:55 UTC (Tue) by kjp (guest, #39639) [Link] (1 responses)

A bundling scheme seems fine for standalone programs that just talk old set-in-stone X(Windows)*. However, for things that require integration with rapidly moving desktop or OS pieces (singleton dbus services, daemons such as ssh-agent, printing etc.) I don't see how this solves anything. Where there are people, there will be entropy.

And it should be noted that Xwindows will be deprecated by wayland.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 19:13 UTC (Wed) by drag (guest, #31333) [Link]

> However, for things that require integration with rapidly moving desktop or OS pieces (singleton dbus services, daemons such as ssh-agent, printing etc.) I don't see how this solves anything. Where there are people, there will be entropy.

Formal APIs for accessing OS services along with containers is what is required. A model that works is how Android manages it's sandboxes.

Building helps to create the strong division between what is 'OS' and what is 'Application'. So it's needed, but by itself is not the full solution.

A high level example is: Application wants to perform some action that requires some privileged access to OS features (ie: networking, printing, etc) then OS assesses if the app should be given access to those services. If application is denied then it gets a error back and how it proceeds after that is up to the application developer.

Dbus is a good mechanism in which to provide standard APIs, but something like kdbus is needed if you want more robust solution, I think.

One of the reasons why containers have grown in popularity is because Linux offers fantastic features in the form of MAC, namespaces, cgroups, etc. Simple things that are possible, like assigning a unique IP address and networking namespace to a application, is very difficult to take advantage of without resorting to using containers.

When IPv6 gains in popularity then it's possible to use a unique IP address for every TCP connection a application makes and the lifespan of the IP address tracks the lifespan of the TCP connection itself. How do you make features like this easily available to applications?

With containers even stuff like SELinux can be simplified considerably. Consider that Android has successfully moved to using strict SELinux rules by default with minimal disruption to users. This is because Android application environment was built with the concept of 'sandboxes' from the ground up.

> And it should be noted that Xwindows will be deprecated by wayland.

Sort of. X Server being the display manager is depreciated. Support for X11 protocol is not. Support for X11 is available by default in most Linux desktops using Wayland via 'xwayland'. I doubt many people are expecting that X11 is going away anytime soon.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 7:49 UTC (Wed) by luya (subscriber, #50741) [Link] (1 responses)

One thing I learned about this article, real journalism i.e. critical analysis based on research has become a rare pearl this day.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 12:24 UTC (Wed) by jospoortvliet (guest, #33164) [Link]

It is what we pay LWN for ;-)

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 19:49 UTC (Wed) by NightMonkey (subscriber, #23051) [Link] (2 responses)

So, as a cranky sysadmin, I have to ask. If containers and similar 'static' bundles are the future, why even bother with package managers in distributions anymore? Security updates are going to be a thing of the past because.... this will make it so difficult to know which code version you are running (including any formerly-shared libraries) with any given application you should just smile, use it, and be happy. Am I wrong here?

I hope I'm missing something, but this whole thing just seems like a hand-waving exercise to stop having to 'deal' with security updates, bugfixes in libraries, etc. It doesn't actually *solve* the problem, it just shatters it into a thousand individual pieces that will be impossible to track, therefore "invisible". How wrong am I here?

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 19:57 UTC (Wed) by NightMonkey (subscriber, #23051) [Link] (1 responses)

Sorry, one more point. If all this (including containerization) is really made to just make everything "easy", why bother with "distributions" at all?

It just seems so strange, and perhaps that's just on me for being too 'experienced'. If I put all my software version 'eggs' into the 'old' model of a distribution, I have one database to query to determine pending urgent and suggested updates from my disro. Now, I have:

* gem
* pip
* rpm and/or apt
* cargo
* curl | sh #omg
* npm

All potentially on one system. Is this really a reasonable alternative? Or is there some force that I'm missing here that is giving such benefits I'm ignorant of?

Don't get me wrong, I'm thankful for the permanent employment plan these ever-dividing abstractions gives us sysadmins. I'm really curious to read about the thinking behind it (and trying to avoid marketing blather as I go). Cheers.

Ubuntu’s snap apps are coming to distros everywhere (Ars Technica)

Posted Jun 15, 2016 20:33 UTC (Wed) by drag (guest, #31333) [Link]

> Sorry, one more point. If all this (including containerization) is really made to just make everything "easy", why bother with "distributions" at all?

Distributions still need to exist to create the base OS.

Also they can maintain repositories of snap packages like rpm or debs. It would be better if they don't sign them themselves and instead use signed packages from upstream, but I don't know how well that would work out ultimately.

Also distributions can audit and vet the packages and provide ways to advise users what packages can be trusted. For example you don't want to have people randomly install 'firebrowser' snaps from 'Evil corp, incorporated' by mistake. It would be easy for experienced Linux people to know what to look for and what to avoid, but for 'Joe Six pack', not so much.

Plus distributions can provide tools and advice for developer to build 'snaps' or 'containers' or whatever. Not everybody instinctually is going to be able to produce good application bundles. Making it easy to do the right thing and difficult to do the wrong things is very important.

So if you think less of 'package repo' and more of 'curated app store' then it is pretty easy to see what role the distributions can play.

Dependencies...

Posted Jul 1, 2016 14:42 UTC (Fri) by callegar (guest, #16148) [Link]

So, snap packages are meant to bundle their dependencies, but it looks like this concept is not strictly enforced, which may lead to some headaches. For instance, after you install the nextcloud snap, it is easy to remember that it depends on apache, mysql and php, which is easy to get with an apt-get install lamp-server. Furthermore, there are some other obvious dependencies that you need to be aware and that you can solve with apt-get install libxml2-dev php-zip php-dom php-xmlwriter php-xmlreader php-gd php-curl php-mbstring (source https://www.linux.com/learn/how-install-nextcloud-server-...). Then, if you stop deploying nextcloud, it is similarly easy to remember that you can manually uninstall all this. Clearly, this is true unless you have some other snap that uses some of it, because in this case, you can sift what is still getting used from what is not and uninstall just the latter. If you are on Redhat or Suse, the dependencies to be manually tracked are likely going to take different names. Seems a bit more complex than it should and may lead to having a version of apache, php or some php module different from the ones tested by the upstream developers. So, I wonder: is this due to some incorrect snap-packaging of nextcloud and by the lack of tools to detect problems and guide the packagers, or is it some inherent limitation of the new packaging approach?


Copyright © 2016, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds