Snap install openstackclients
javacruft.wordpress.com
javacruft.wordpress.com
I created subuser <subuser.org> which runs on top of Docker, and of course, packaging is as simple as it is with Docker... The big problem is that when you want to update something, it is hard to do so without making everyone have to download a huge image all over again. Of course, you can try to prevent this with layers, but usually updates don't just touch the top layer :( ... So what I really want in the future is to be able to use IPFS or some kind of bittorrent-like download interface for images, so that when you update an image, you only have to download the parts that changed. There is a GREAT demo by a guy named Mathias Buus on this very topic here https://www.youtube.com/watch?v=2Sc6_XgNXyk which really gives you a feel for the awsome that would be deduplicated content addressed Docker.
Flatpak has something sorta similar, they use OSTree under the hood. https://github.com/ostreedev/ostree which is basically git annex for people who like incompatible redhat/freedesktop specific implementations of generic algorithms. It also does dedup, but at the file level not the block level, and so flatpak should be better at handling updates than subuser/Docker. Then again, who wants to repackage everything with their weird "standard" overcomplicated image format when you can just use Docker and throw anything you like into the image, however you like to throw it....
We can also provide binary delta downloads of snaps.
http://engineering.opensooq.com/manage-your-docker-image-lay...
[I'm one of the maintainers of runC and am very involved in the OCI.]
They're a much easier way to package applications vs traditional packaging (ie apt, rpm).
Remind me why do steam do have to ship ubuntu's version of heavily patched libraries instead of using system upstrean version shipped by archlinux for example?
If snap is not a vendor lockin trap what is the vendor lockin trap?
Ie, Why is it better than:
alias openstackclient='docker run --rm -ti -v ~/.config/openstack:/etc/openstack gbraad/openstack-client:ubuntu openstack "$@"'A docker image runs a full operating system. There are some light OSs for docker, but that's still heavier than a snap.
The snap runs directly on your host, with a different kind of isolation to make it secure. So it also makes easy other kinds of communication between apps, like unix sockets or dbus.
Then there's the great feature of autoupdates. If the openstack developers push a new version, it will reach all the users within 4 hours. On a docker container you can have the same problems you have in classic distros. You'll get an old version by default, and you have to apply hacks or accept other risks if you want to get a newer.
What would be awesome is to be able to run snaps inside docker containers. That will be a mix of both worlds, docker for replication and adding or removing new machines as the load changes; snaps for getting the software into those machines. We can currently do that with linux containers, maybe at some point docker will support them too.
And we have snaps for docker and lxd, make sure to give them a try:
$ sudo snap install docker $ sudo snap install lxd
Then the snap can use interfaces to go out of its confinement and access things that the user has agreed to allow: https://github.com/snapcore/snapd/wiki/Interfaces
I didn't know that DBUS supported selectively allowing access to selected services. I thought that was a new feature in the non-accepted kdbus. That was certainly what the redhat folks wrote. They wrote that it isn't possible to secure dbus without kdbus...
> snap disconnect <snap>:<plug>
Then you can reconnect with:
> snap connect <snap>:<plug>
dbus mediation is something that Canonical developers added, IIRC.