Ubuntu 20.04 LTS’ snap obsession has snapped me off of it
personal.jatan.space
personal.jatan.space
I blew up my Ubuntu install and switched back to Debian. I haven't missed Ubuntu at all. I am resigned to the fact that if I care about a particular piece of software because it's the reason I use a computer (go, Emacs, Node, etc.) then I just have to maintain it myself. There simply isn't a good way right now. And you know what? It's fine. Everything is configured exactly the way I like, and it will never change unless I change it.
Exactly. I recently had to replace Chromium with Google Chrome just because the Ubuntu maintainers thought it'd be a good idea to replace the Chromium apt package with an installer that pulls in the snap…
Good thing Firefox is my main browser and I only use Chromium/Chrome for testing (and whenever websites forget that there's more than just one browser to test for), otherwise I would have long ditched Ubuntu, too.
https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+...
There's more info here: https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+...
s/available to/allocated by/
I don't know that Canonical cares too much about doing QA themselves. It seems like they've decided to delegate that to the userbase.I've had this glyph issue for over a year. In chromium, Signal, some ebook app, and several other snaps.
I've tried many things. But gave up. Snap is not 'one layer of indirection' too much. It's hundreds of them. There's chroot, some VM, a virtual gnome, containerisation, weird user and permissions. And so on.
This complexity made me conclude that snap is a bad solution (to a real problem). Not the glyph issue, but the fact that I cannot fix it, is, for me, the reason to conclude it has, or will fail.
It’s sets out to solve a couple of problems in an app-focused way. As with any packager that packages dependencies, it introduces a few dozen more in the process.
Why this isn't more of a deal breaker I have no freaking idea.
All of the raging discussions in this thread would be totally absent if Canonical had taken the time to make apps installed with snaps fast. Unfortunately, these days, the "make it work, make it right, make it fast" mantra seems to stop at the "make it work". At least the 20.04 release seems to be at that stage.
Congratulations, you just got a bunch of users who are going to avoid updates even more because you are going to make everything slower with your shiny new release.
-------------------
[1] https://www.nngroup.com/articles/response-times-3-important-...
Genuinely curious, why would you not just keep using Arch?
I got sick of it after six years or so and moved to Linux Mint. (This was before Manjaro was widely visible.) Been on Mint ever since: it's a better Ubuntu than Ubuntu, and a better Windows than Windows (for ordinary uses).
Note that Mint 20, although based on Ubuntu 2004, has removed snap from the base install. `apt install chromium-browser' takes you to a web page explaining why.
I will say, Linux Mint is my recommended Debian based distro for desktop use, it really is a better Ubuntu than Ubuntu.
I see the value of file system and dependency isolation, but it shouldn't result in such significantly degraded performance.
Sadly I noticed a while ago that Windows began to outrun Ubuntu on my older machines; it doesn’t seem like Canonical really cares about performance anymore.
IIRC Shuttleworth took a more governance and less hands-on role after that, and Ubuntu started to focus on server and enterprise support.
That they clobbered the apt install just to push Snap forward left a bad taste in my mouth.
http://archlinux.2023198.n4.nabble.com/Windows-Subsystem-Lin...
I've had to install Chrome to try a thing or too (so not as a daily driver) and I haven't noticed anything weird during use. I've used Jetbrains' PyCharm daily for a few months and no problem there either (although that is a "classic" snap, not sure if it matters).
Don’t do this to yourself! Debian is not going to give you bleeding edge. But there are plenty of distros that can. Despite being a meme, Arch Linux is one of the best distros available, and has been for years. Node, golang, are usually updated within hours of upstream, while the core system remains stable. If you’re looking for something more modern, Solus has been gaining popularity and also has relatively up to date packages. Debian is great for servers.
I like what they are trying to do but it just did not work for me.
Arch is hard to figure out too with the wiki based docs but at least that’s advertised as unfriendly.
1. You're using latest upstream, after it passed through the archlinux-testing repository. This means you won't have to install software from somewhere else just because the repos are outdated. (nighly builds of software are different)
2. Sometimes you have to sys-upgrade to install/fix something, and you don't have much say in when that happens. Typically you need to preemptively do this about once a week to not potentially get interrupted by manual intervention at a bad time. Yes, you will need to do manual intervention, but you won't spend much time on it. It's far less work than getting up-to-date software running on your debian stable.
Arch will give you small issues every now and then, but it gives you the tolls to fix them and makes it easy to do things that are much more difficult on other distros.
Is there anything special about getting nix working well with other package managers? I'll be honest, the main thing keeping me from digging into it further are the docs and the syntax. I can never tell if I'm reading about nix-the-package-manager, nix-the-language, or nix-the-operating-system; and looking at the syntax makes me understand what most programmers feel when they look at lisp.
Sorry to hear you had issues on ubuntu. Its hard to say how you might improve your experience without knowing more details. The nix forum is probably a good place to get support for that sort of thing.
It only clicked for me when I started using NixOS (on my primary laptop in my case) rather than just Nix.
I think the biggest challenge using NixOS vs Ubuntu is if you've got some weird obscure piece of software you need to get working there's a better chance that someone has already figured that out on Ubuntu and you might have to do the work to get it running on NixOS.
On the other hand I've found contributing to Nix easier and less intimidating than contributing to Ubuntu. To add a package to Nix you just open a PR in the nixpkgs repo on github. I've found the community to be friendly and helpful.
I use a lot of LXD containers for when I just want play around with something in a non Nix environment.
Oh and I love being able to run `nix-shell -p <package>` to use a package without "installing" it.
The TL;DR is that Ansible is given a description for some part of the system, then squints at that part and trys to make it match the description. This means that it doesn't unify anything that you haven't described and if you stop describing something it doesn't go away (unless you explicitly tell Ansible to remove it). This means that your Ansible configs end up unintentionally depending on the state of the system and the state of your system depends on the Ansible configs you have applied in the past.
NixOS is logically much more like building a fresh VM image every time you apply the configuration. Anything not in the configuration is effectively gone (it is still on the filesystem but the name is a cryptographic hash so no one can use it by accident). This makes the configs way more reproducible. It also means that I can apply a config to any system and end up with a functional replica that has no traces of the previous system. (other than mutable state which Nix doesn't really manage.)
Nix has other advantages such as easy rollbacks (which is just a bit more convenient than checking out an old config and applying it manually) and the ability to have many versions of a library/config/package without conflicts or any special work required if you need that.
I wrote a blog post a while ago that tries to go a bit more into detail over what I just described https://kevincox.ca/2015/12/13/nixos-managed-system/
Now keep in mind we can't blame squashfs here. It was developed for use on <16 MiB large NOR flash chips for embedded devices likely connected over SPI - the underlying flash and interface is so unbelievably slow that no amount of compression or terrible kernel code would ever start showing up in some kind of benchmark. Using it on super fast desktop machines with storage that rivals RAM bandwidth and latency is just the opposite of what it was developed for.
Selected squashfs parameters are the speed issue.
And as someone living with OCD (the real thing) the whole Snap thing just makes me so anxious. And like you experienced, it is soooo slow. I cannot even go back to windows because for some reason the wifi on my laptop does not work well with it.
I do not care about bleeding edge anymore, but I am a casual user mostly doing genetic research, so Debian Buster with Cinnamon is, to me, the best distro on Linux today.
What are the biggest drawbacks? I know you said you don't miss Ubuntu at all, but is there anything which is causing you pain because it works differently or is just missing?
I used Debian and it seems to be gaining detractors from Ubuntu, my only question is... what made you switch and sick with Debian?
The rough edges I've found: no automatic updater or security updates in testing, just run apt update/upgrade once a day. An initial problem with the video driver not working because it requires non-free firmware, solution is just to add Debian non-free (it would have been helpful if a warning was given during installation). Firefox/thunderbird still on an old long-term-service release: I've been installing tarballs manually for now.
And it's yet another way to do an end run around repositories, instead you will sooner or later get an app-store like environment that can be controlled by some entity. These large companies should stop fucking around with Linux, it was fine the way it was. Just fix the bugs and leave the rest to the application developers.
In practice though, they don’t matter for a vast majority of users, and package managers are far less hassle. Maybe it’s time for the principles to change?
Canonical has 443 employees according to the wikipedia page. Is that large in this context? I don't really think so. Redhat (13k employees) is large. Canonical isn't large.
Not sure if you were commenting on the whole approach or just snap, but FTR, flatpak uses shared base layers which can be updated individually, so there's still an upside to dynamic linking.
But perhaps base container images on scratch, not on ubuntu:latest ;)
Disclaimer: I never used snap and don't use Ubuntu.
I’ve not been impressed at all.
Visual Studio Code is a regular package, just because its use case it not really suited for a sandbox (access to system binaries, libraries, etc.), but I honestly haven't even tested its Flatpak version.
The other day I pushed an update to some flatpackaged app, and guess what, it's available to all Linux users. Packaging has become incredibly easier for third parties with these kind of technologies.
I also am a strong believer that the future for sane desktop PC's is that every program (except the most fundamental core services) of a desktop OS should be sandbox by default. With basically no permission to access any local files or communicate with any other program/service.
It would need some MAJOR changes, slowly step by step. And I had hoped with snap & flatpack we would be slowly transitioning there. But it doesn't really look that way anymore to be honest.
(PS: And it can be done with reasonable UX experience without requiring the user to configure some magic access rules or anything, but it's tricky to get right and it not be fully backward compatible but often changes just need to go into the GUI toolkit (QT, GTK) so it should be possible.
Occasionally I need to replug my headset in at the beginning of the meeting to get my voice audio working, but I'm not sure if that's actually an OS issue or not. Either way, it's never taken more than a couple seconds.
Please elaborate.
> entirely voluntary
Fedora Silverblue would like to disagree. And in any case all parties know it's still in flux, but the stable parts are stable in my experience. I would not want something like Snap or otherwise immature forced down my throat.
Note: I'm not making a value judgement about flatpak's sandboxing, merely describing it to the best of my knowledge.
The people configuring the sandbox should be packagers that you trust. The upstream developers might provide some recommendations to the packagers, but if it's obvious that an application shouldn't need a permission, it shouldn't have it.
But permissions can't save you from an actually malicious app. Constrain it from accessing the camera and it will still be using your device to host pornography. Constrain it from accessing the filesystem and it will still run up your electric bill mining bitcoin. You either need to trust the developer or you need to get the app through someone you trust to have audited it for you.
Flatpak, as well as snaps through clasic confinement, allows the developers to "escape" the sandbox because they know that they don't have all the permissions required to provide feature parity with deb/rpm packages. Another reason this is needed is that application developers are not writing their applications with flatpak compatibility in mind. However flatpak is going in the right direction.
Mobile operating systems have proven the value of sandboxing apps.
For instance: the Pinebook Pro just got gles3 support via upstream mesa, but all the flatpaks with mesa haven't or won't update with any alacrity.
Users are left having to abandon sandboxing in order to get necessary updates.
Still, it's not just graphics drivers: there's the oft-cited security patches, but also features for user-facing interfaces; Ie, an update to a URL parsing library might add additional codepage support transparently to an app that uses it.
As one example, I was surprised to find that the tor browser doesn't have an arm64 build :o
Thus far, it's my favourite laptop purchase ever. Beats the feeling I got with the IBM X series or the Ti Book. It's light, zippy enough, great Linux hardware support, and totally silent.
Might be nice for hardcore fans, but good luck supporting anything there.
If the sandboxed app package model is what you desire then there's already a great and popular Linux distro for you: Android.
Nothing about "based on the AUR". Because it is liability. It is insecure, have to check PKGBUILD each install and update.
[1] https://wiki.archlinux.org/index.php/Arch_compared_to_other_...
It was easier to build it and not use flatpak.
How are you going to sandbox graphical apps without knowing about (and having capabilities around) the system by which a containerized app would communicate with your OS’s graphics subsystem?
I mean, if you’re not going to run any X11-client graphical apps, it should probably be optional to have an X11 server installed; but either way, you’ll need the X11 wire-protocol libraries (“xorg-common” in most package repos) for the sandbox to link in.
Wayland is the way forward.
> you’ll need the X11 wire-protocol libraries (“xorg-common” in most package repos) for the sandbox to link in.
Today, runtimes do contain client x11 libs. However, nothing in flatpak requires it and it is possible to phase them out in the future releases of runtimes.
Wayland has been "The Way Forward(tm)" for 10 years now.
That may be. But nobody in RedHat/Canonical/etc. believes that enough to put sufficient manpower on it to make it true.
It is default display server in RHEL8. If that is not believing enough in it, I don't want to even know what would be sufficient to prove otherwise.
The number one and two attack vectors have always been tricking users into installing malware and attacking old insecure software.
Distributing virtually all software via app stores substantially solves acquiring safe software and ensuring it receives updates.
Defense in depth is virtuous but Linux is already more secure than windows in the ways that actually count and unlike MS they are actually positioned to in the future sandbox software because its all already mostly coming from app stores.
You can do very similar, but if it's a gui app, or has specific system dependencies there will be issues to work around.
Linux has had some of the best software security through MAC (SELinux, Apparmor) and cgroups. The problem is that there is no culture in free software to actually write specifications at the point of development, it generally falls on distros / maintainers to try to sort out MAC profiles or cgroups restrictions on a per-package basis.
That is why the packagers largely went with the Snap / Flatpak route of saying screw doing the grunt work heres a total sandbox with all the libraries built in.
It would be great if we could convince the whole ecosystem to start provisioning access specifications for libraries and binaries so upstream could start building apparmor / selinux profiles from provided files rather than having to do learning mode auditing that drove distro maintainers to not even bother.
Linux is one of the most secure platforms to run web applications on, however, because more man hours than I can comprehend were spent hardening that use case.
All of those hardening measures can transfer over to the Linux desktop use case.
For example, seccomp, cgroups and MAC can all be used to harden a Linux server, and they can also be used to harden the Linux desktop. It's just that no one has thrown the same billions of dollars at desktop Linux that were thrown at solving web application security.
If you really wanted to, you could run a lot of your software in unprivileged containers secured with seccomp.
We've come full circle, because Snap does run software in unprivileged containers.
What's wrong with that? It's perfectly okay to say "I don't care".
I do release all my code under MIT because I care about attribution. I don't mind if people want to use it in commercial or closed source applications, nor if they want to modify it somehow.
I distribute code because that makes _me_ happy, not because I want to share an ideological statement about how others should distribute their code (or not).
The problem is rather, what it means in the long run. The point is, that this kind of only caring about for example attribution makes the ecosystem exploitable. It does not uphold ideals or enforce principles. Without upholding ideals and enforcing principles, how do we expect our principles to be followed in the future? If there is no legal obligation to do anything, which capitalistic (We need to maximize our profit! Ethical principles? Nah, come on ...) big company is willing to go the extra mile to respect the principles of some open source community, perhaps even at the expense of making more profit from a closed source solution? And I mean going the extra mile, without seeing it as an opportunity to use the very action as another means of promoting oneself. Simply going the extra mile, because it is the fair thing to do.
As I see it, as long as there is a chance to deviate from following the principles (no copyleft), someone somewhere will do so. Heck, even with such obligation to adhere to principles some people will deviate from the path. The tendency is always towards the wrong direction, if we do not enforce our principles of openness and such. It is an uphill battle. The whole ecosystem goes towards a not so open direction, by these initially small "missteps".
Especially when a a big company with a lot of developers takes stuff and makes proprietary stuff out of it, as its product, which usually initially has more functionality than its open source counterpart, users will quickly switch to the non-open proprietary version. They do so because they want that new shiny functionality immediately. The slightest inconvenience is sufficient for many users to drive them towards proprietary software. They do not know nor often do they care initially about using a non-open, non-free thing. Until they are sufficient users to create a bubble, in which the open source ideas are no longer existent. Then however, the network effects are already strong. "But all my friends use X. No on uses Y. I cannot convince them all to switch from X to Y!"
Example: There are loaaads of at least open source (and some also free software) messengers out there. All people need to do is to use them. But the network effect and features like integration with (a)social media are so convenient for them, that they give up on their freedoms and use things like Whatsapp or Facebook.
MIT is beautiful is its concision, and reasonably reflects the "use however you want but don't blame me" legalese I used to custom craft before I found it.
Man, I get this now esp with AWS services and everyone recommending how "easy" it is to x with y service, and why it we should use to too and it will magically solve all the problems… and I'm like: "no, i'm going to use this open source software that we'll have the code for and be able to tweak to do whatever we want to do and see how it all works (oh and is free to use), and unless you are going to be willing to hack around all the edge cases yourself that with y service without me getting involved at all" and then that usually works, though I suspect once I leave, the costs of running infrastructure are going to go through to roof and no one else is going to have any clue as to why that's so (but more likely, think that its impossible to have it any other way than paying to have y)…
Moments like these are great opportunities for folks that just don't accept "the non-open proprietary" by default, but its only an opportunity because most choose to accept "the non-open proprietary" by default… we all have to pay for the choices we make… some just want to pay more to not have to think about things… tradeoffs.
Honestly, it really depends on which stage of life your company is at, and the resources you can allocate to infrastructure work.
At the very beginning of my company, we did exactly what you mentioned here.
- Pay for a managed NAT gateway? No thanks I can do the NAT myself with iptables on a cheaper EC2 instance.
- Pay for a managed NFS? No thanks I can do it myself
- Pay for managed VPN? No thanks I can setup IPsec myself
- etc.
With time though, as the company starts to gain money, and the number of users increase, we switched back to more managed services. The key here is that you want to refocus your infrastructures efforts on more business centric issues.
Also, most of the time, the time spent to maintain a service is exponential with its scaling. NFS is a good example here. Setting up a number of NFS shares for 5/10 users is fine. Once you get 20+ NFS users, you just better focus on your real company product rather spend month and money on maintaining NFS yourself.
Though saying this, even at a small corp level, are still affordable proprietary solutions out there (not necessarily in AWS), but most people trend towards whats trendy…
This pulls users from the open source projects and since contributions do not flow back to the open source project, it can quickly become obsolete in the eyes of the most users. The principles of open source will live in that open source project, which in the end (exaggerating) "no one uses" and will become pointless. Most users are not protected by these great ideas or principles any longer, because they will be sucked into the closed source swamp, because all their friends are there already.
I do think that's why the distinction between "free software" (copyleft) and merely "open-source" matters.
If you look historically, "open-source" became a thing as a reaction to free software where it preserves the most visible benefits, (source code in the open, modifyable by others), but treats these as purely a convenient workflow when working on code, whereas free software is more of a philosophy and so less likely to erode on principles.
Free software doesn't need to be copyleft, though. The MIT license, for example, is a free software license, even though it's not copyleft. Projects such as the various flavours of BSD can have pretty strong principles regarding their software distributions remaining free even though they don't prefer copyleft.
That is true, however speaking to many members of the FreeBSD community in particular, there seems to be a strong sentiment of this simply being a practical model of development, rather than a strong ideological stance. In fact a large portion seems to be rocking Macs, "cause it's BSD anyway", which to me does not seem particularly principled.
In fact they seem to take pride in completely closed systems being based on FreeBSD, like the PS4, Nintendo Switch etc.
There are two models.
The first model is the traditional distribution model. The distribution curates and integrates software, picking (generally) one version of everything and releasing it all together. Users do not get featureful software updates except when they upgrade to a new distribution release - all at once.
The downside of this model is that developers who want to ship their new software or feature updates without waiting for a new distribution release get stuck into dependency hell and have to operate outside the normal packaging system. Same for users who want to consume this. Third party apt repositories and similar efforts are all fundamentally hacks and generally all end up breaking users' systems sooner or later. Often this is discovered only on a subsequent distribution upgrade and users are unable to attribute distribution upgrade failures to the hacked third party software installation they did months or years ago.
The second model is the bundled model. Ship all the dependencies bundled in the software itself. That's what Snaps (and Flatpaks, and AppImage) do - same as iOS and Android. This allows one build to work on all distributions and distribution releases. They can be installed and removed without leaving cruft or a broken system behind. They allow security sandboxing.
All your objections seem to be criticizing the bundled model itself, rather than anything about Snaps themselves except that they use the bundled model.
If you don't like the bundled model, then you can carry on using Ubuntu 20.04 without Snaps just fine.
> If you don't like the bundled model, then you can carry on using Ubuntu 20.04 without Snaps just fine.
No, you can't. Ubuntu has started replacing apt packages with snaps. So if you want to install those packages (such as Chromium) you now have to use the snap.
New distribution releases always add and remove packages. Chromium has been removed (as a deb). It's is no longer packaged as a deb because it's a rolling release upstream and it was too much work to backport featureful rolling release to debs.
The same is also somewhat true if first-class tools such as Software (as in the "store" GUI) begin to push snap packages as the first thing, because then you will, by default, need to go through additional steps to find the packages that you want, and which used to be available as the first choice.
You can still do things, of course, but it might be that you need to start getting around the snap-centric design choices more often, and at that point it doesn't come at no usability cost to you anymore.
I don't actually use Ubuntu at the moment, so I don't know how much that is the case now, but if it is (or if seems like it's going that way), I understand the frustration.
Well, if you don't like it, you can always fork it. That's the beauty of open source. /sarcasm
Seriously though, all out replacing stuff with Snaps doesn't seem like the right move.
Considering that (as other posters have mentioned) deb packages are released by the vendor in this case it feels like a flimsy excuse.
You can almost always install via deb if you want instead.
Slowly boiling the frog is really effective.
I'd wager they will require deb packages to be signed with a certain Canonical key that they will use strictly for basic system packages. Everything else will be a sandboxed Snap, left to third-parties to maintain, distributed through a Canonical Appstore that enables payments.
Maybe they will give you an option to "root" the system, and if you use it you'll lose any right to support or updates from Canonical.
Snap is fundamentally a commercial play to reduce support costs and enable an appstore.
I really don't see what benefit that would provide them over other distros though and I'm not sure why they would make that choice to close down their system?
Fundamentally Linux works so well because of the free software movement and I don't see any app maintainers choosing to charge a fee for their software if they aren't already.
If anything can go away its Ubuntu desktop.
Snap may stay since it is the defacto standard in IOT world.
The forth model - multiple versions of dependencies live on the same system, environment constructed for each application. Deduplication works.
Bundled model has its values (just like vm) but it really shines with inadequate package management. If you don't like the bundled model switch to Arch Linux or NixOS.
Ubuntu is more stable in theory, but I've encountered broken packages (like hex editors with an incorrect hard-coded temp path, causing it to be unable to overwrite files).
$ pacman -Qi glibc
Depends On : linux-api-headers>=4.10 tzdata filesystem
1. This version is not present in Arch Linux Archive anymore [3], search for package page [4], View Changes, search for corresponding PKGBUILD revision [5], makepkg. It is much easier if package is not that old and can be found in /var/cache/pacman/pkg/ or archive.2. install with `pacman -U linux-4.15.8-1-x86_64.pkg.tar.xz`
3. skip package from being upgraded with /etc/pacman.conf IgnorePkg [6]
I had problems both with Ubuntu and Arch Linux updates. At least I can fix Arch Linux issues, Ubuntu felt broken.
[1] http://sergeykish.com/linux-poulsbo-emgd
[2] https://wiki.archlinux.org/index.php/Downgrading_packages
[3] https://archive.archlinux.org/packages/l/linux/
[4] https://www.archlinux.org/packages/core/x86_64/linux/
[5] https://github.com/archlinux/svntogit-packages/commits/packa...
[6] https://wiki.archlinux.org/index.php/Pacman#Skip_package_fro...
Ukku worked well for me to get newer kernels without issue, but kvm/virtualbox were totally borked, just as my hardware support was stable.
So different systems switch between different methods as their prieceved value of the different usecases change which upsets people who see the values of the tradeoffs differently.
If you have the perfect solution I'm all ears.
First is pre internet, because updates cost money, and because pre internet security issues weren't common.
Second is now, change one thing every day, always run the latest code, automated testing to make the latest code always work. Also means don't need a security branch and a feature branch.
People hate change, and linux people have the ability to say no and do their own thing.
Python has easy_install, pip, anaconda and wheel; virtualenv to isolate packages. Node has npm and yarn (is it resolved?). Ruby gem defines version in code, bundler in Gemfile, Gemfile.lock; vendor/, rvm gemset, BUNDLE_PATH to isolate packages. Even developers can't find right answer.
Because it matters?
Package management is the main differentiator, I love pacman, I love PKGBUILD and makepkg.
I experienced this lately when my Rust-compiled binary used too modern a libc version for the aging Docker container environment we used for deployment, which forced me to use another Docker container for local development -- which obviously isn't ideal and removes the 100% reproduceability promise.
Not really. The platform, Ubuntu in this case, has clearly signaled that they want to move from debs to snaps. And apart from the technical benefits of snaps (sandboxing) you also get the drawbacks (they are slow, updates are forced, and there is only one source for them). What you propose is fighting the platform you are staying on, and that's not a great place to be. Far better to move to platform more aligned with your choices as a user.
P.S.: If anyone is looking for quick and dirty suggestions, there's pop!_OS which is quite close to Ubuntu so there won't be many changes to the user experience. In my case it was Fedora. The linux ecosystem is diverse enough to offer many choices.
Servers are all deb which is main source of their income. If anything will go away is Ubuntu Desktop.
Snap may stay since it is the standard in IOT world.
> If you don't like the bundled model, then you can carry on using Ubuntu 20.04 without Snaps just fine.
While it's true you technically can, at some point you have to ask yourself why you're going against the grain instead of picking a different distro (or not upgrading to 20.04, at least). Ubuntu wants you to use snaps. You can sidestep this, but you should ask yourself if you shouldn't just switch distros.
I just recently upgraded from Ubuntu 16.04 to 18.04. I don't see the reason to upgrade to 20.04 as long as the software I need works and I keep getting security fixes. Once this LTS gets EOL'd, I'll see what the current deal is with Ubuntu and seriously consider switching to another distro.
I regret not taking the plunge and installing Manjaro against the will of our IT during onboarding (they don't forbid it, they simply can't promise good support if you don't install Ubuntu). I am sure I could have found a way to install the 2-3 corporate VPN / spy / monitoring agents my employer requires on the machines they issue for employees.
But anything I've needed of Manjaro, I always got it. Granted that's an anecdotal evidence, obviously -- I haven't tried running games, for example.
When I was writing apps for distros, I had the opposite problem. Every single release of GNOME and Ubuntu would break PyGTK in some way so that my software that used zero new features in the OS, would require at least some modifications and force me to maintain many versions. Finally, Gtk changed something that broke something in a fundamental way (something in Gtk TreeView, I forget what exactly) and I simple gave up maintaining software rather than suffer through figuring out how rewrite everything again.
> If you don't like the bundled model, then you can carry on using Ubuntu 20.04 without Snaps just fine.
This blog post and many of the contents are claiming that you can't just use Ubuntu without snaps anymore as they are being forced upon users.
Some dev flat out[0] refuse (and I am not debating if it's right or wrong) to package their app for every distro (even major ones: ubuntu, debian, arch, rhel/fedora) so it's up to distro maintainers to package them so users are always at the end of a line of other people packaging the apps (either through distro packages or sandboxed one click installer).
[0] Words are too strong and user CJefferson https://news.ycombinator.com/item?id=24384206 is right to call me out on that. I agree, sorry about that. Poor choice of words. I had a very specific example in mind but there's obviously a whole gamut of reasons for not packaging. My position is that we can't nor should we expect dev to package their apps for the distro we use. Also it's no like app devs and distro/os devs/maintainers are living in hermetic boxes and their code/apps never interacting or evolving. Not editing out for context.
I tried packaging for Debian once and after 2 days I have up -- I have neither the time or patience to do work for distros I don't use for free.
If you haven't seen it, I highly recommend looking at fpm for packaging. Unless you're doing something weird or need an obscure format, it is the tool you want.
I have been thinking about that. I disagree. It's always nitpicking o'clock on HN and I specifically wrote "Some" and specifically wrote in brackets that I wasn't debating if it's either right or wrong. I agree that it should have been worded differently but the facts remains and that doesn't follow that there's “more than a whiff of entitlement“.
Of course, half the point of containers is to “vendor” your dependencies — a container-image is the output of a release-management process. So the symbolic reference part of dynamic linking is an undesired goal here: the container is supposed to reference a specific version of its libraries.
But that reference can be just a reference. There’s nothing stopping container-images from being just the app, plus a deterministic formula for hard-linking together the rest of the environment that the app is going to run in, from a content-addressable store/cache that lives on the host.
With a design like this, you’d still only have one libimagemagick.so.6.0.1 on your system (or whatever), just hard-linked under a bunch of different chroots; and so all the containers that wanted to load that library at runtime, would be sharing their mmap(2) regions from the single on-disk copy of the file.
The primary issue with this approach is that if every program only sees its own version of the library anyway, there's no incentive to coordinate around library versions - you end up with tons of versions of everything anyway, maybe not one for every application but close to.
Oh, I know :)
> there’s no incentive to coordinate
True, but it potentially works out anyway, for several reasons that end up covering most libraries:
• libraries that just doesn’t change very often, are going to be “coordinated on” by default.
• people building these container-images are the same people who actually tend to be running them in production, so they (unlike distro authors) actually feel the constraint of memory pressure; so they, at development time, have an incentive to push back on library authors to factor their libraries into fast-changing business layers wrapping slower-changing cores, where the business-layer library in turn dynamically links the core library. This is how huge libraries like browser runtimes tend to work: one glue layer that gets updates all the time, that dynamically links slower-moving targets like the media codec libraries, JavaScript runtime, etc. Those slower-moving libs can end up shared at runtime, even if the top-level library isn’t.
• on large container hosts, the most common libs are not app-layer libs, but rather base-layer libs, e.g. libc, libm, libresolv, ncurses, libpam, etc. These are going to be common to anything that uses the same base image (e.g. Ubuntu 20.04). Although these do receive bug-fix updates, those updates will end up as updates to the base-layer image, which will in turn cause the downstream container-images to be rebuilt under many container hosts.
• Homogenous workloads! Right now, due to software-design choices, many container orchestrators won’t ensure library-sharing even between multiple running instances of the same container-image. We could fix this issue without fixing the rest of this, but designing a container-orchestrator architecture around DLL-sharing generally, would also coincidentally solve this specific instance of it.
Simple example. App A wants tensorflow 1.10, CUDA 8, and python 3.7. App B wants tensorflow 2.2, CUDA 10, and python 3.8. You want App A and B installed at the same time but the two versions of tensorflow are neither forward nor backward compatible. The two pythons will fight with each other for who gets to be "python3". How do you deal with this without containerization?
I don't think it violates the principles of open source at all, it's just making sure each application gets the exact versions of libraries it wants without messing up the rest of your system.
And that's the exact problem. Instead of solving it in the proper way you end up with kludge-on-kludge to paper this over.
Backwards compatibility is a great good, you let it go only if you absolutely have to rather than because you can upgrade stuff so easily.
> The two pythons will fight with each other for who gets to be "python3"
An even clearer case, obviously python 3.8 should be backwards compatible with 3.7.
I think so too, but HN downvoted me to oblivion the last time I advocated for that. That's part of the problem, I guess, is that the dev community doesn't actually agree with 3.8 being backwards compatible with 3.7.
My understanding of semantic versioning is that:
- (x+1).0 and (x).0 don't necessarily need to be able to run code writen for the other
- 3.(x-1) doesn't need to be able to run code written for 3.(x)
- 3.(x+1) should always run code written for 3.(x)
Hence, you should be able to point "python3" at the latest subversion of 3 that is available, continually upgrade from 3.6 to 3.7 to 3.8, and as long as you have a higher sub version of 3, you shouldn't break any code that is also written for an earlier subversion of 3. That's why it is supposed to be okay to have them all symlinked to "python3". If a package install candidate thinks the currently running "python3" isn't recent enough for the feature set it needs, it can request the dependency manager upgrade "python3" to the latest 3.(x+n) with the understanding of not breaking any other code on the machine.
Unfortunately that isn't true between 3.7 and 3.8. There are lots of cases where upgrading to 3.8 will break packages and that violates semantic versioning.
...irrelevant, I'm afraid.
Python doesn't use semantic versioning, so you can't really expect them to follow it. As GP insinuated, if you just pretend that 3.7 is 37, and 3.8 is 38, you'll pretty much be able to apply semver thinking, though.
Right, so because Python doesn't coooperate, we end up needing containerization, which is what I was trying to explain in GGGGP. Because apt will upgrade 3.7 to 3.8 and unfortunately break anything that was written in 3.7 (and vice versa).
An app needs to be able to say "I'm ok with python3>=3.7" and be fine if it gets 3.8, 3.9, or 3.20, if we want to be able to run it without a container. (And likewise for all its other dependencies besides python)
I actually think that’s exactly what we should do. Containers are an over-engineered solution for a problem that never needed to exist.
Dynamic linking doesn’t work unless you can live inside a distro maintainer’s special bubble for all your software. If you can exist in that bubble, great—I really like Debian for certain use-cases—but if you can't, the benefits of dynamic linking everything are clearly outweighed by the drawbacks.
Why couldn't this work for a Linux-based OS? Honest question.
In Linux, there is no such authority and therefore no sharp line separating 'core OS' and 'external library'. It is just conglomerate of Linux kernel and independently developed tools and libraries (where each of them is more-or-less optional).
A few this could be solved (esp PAM and GPU ones) by making the full thing work over IPC. Already opengl is a pain to work in generic containers.
Good luck patching that security vulnerability in all those static binaries without proper dependency tracking ;). Not that I am on a particular side of the fence, both have their downsides.
To me the problem are package managers from the '90ies that use a single global namespace, only allows UID 0 to install packages, and do not really provide reusable components.
Modern packaging systems like Nix and Guix allow users to install packages. Packages are non-conflicting, since they do not use a global namespace (so, you can have multiple versions or different build options). They provide a language and library that allows third-parties to define their own packages.
Not to say that they are the final say in packaging, but there is clearly a lot of room for innovation.
Snap and Flatpak are copying the packaging model of macOS, iOS, and Android. This is a perfectly legitimate approach (and IMO the execution of Flatpak is far better). But it is not for everyone -- e.g. if you prefer a more traditional Unix environment.
Well, there is nothing that says you can't have proper dependency tracking just because something is statically linked. The infrastructure isn't currently there [x], but it definitely is something that languages and language package managers could with each other and provide.
[x] But can be built, now that more and more languages have access to language package managers with proper dependency tracking. One way would be to create a standard for how to query a binary for what it depends on. Then a computer could have a central database of the dependencies of static binaries that is installed.
Didn't say so. It is just easier with dynamic linking, because you can see what libraries (and versions) a binary is linked against.
But can be built, now that more and more languages have access to language package managers with proper dependency tracking.
Actually, approaches such as Nix' buildRustCrate (where every transitive crate dependency is represented as as a Nix derivation) + declarative package management offer this today.
But with curl | bash or traditional package managers, which are most widely used today, this is kind of dependency tracking hard/ad-hoc.
But can be built, now that more and more languages have access to language package managers with proper dependency tracking.
But then a static C library is used and nobody knows where it came from. Even if you look at the Rust ecosystem, which generally does things well when it comes to dependency handling, crates are all over the place when it comes to native libraries. I have seen everything from crates that use a system library (or something discoverable via pkg-config), via crates that have the library sources as a git submodule and build them as part of the build-script, to crates that download precompiled library from some shared Dropbox link.
Another fun example from another language ecosystem. numpy uses OpenBLAS. They compile their binary wheels on CI. However, OpenBLAS itself is retrieved as a precompiled binary from another project [1]. However, the rabbit hole goes deeper. In case OpenBLAS is built for macOS, a precompiled disk image is retrieved from yet another repository [2]. This disk image is added to that repository, but comes from yet another place.
This is all sort of the opposite the lessons to take from Reflections on Trusting Trust and the bootstrapping that the Guix folks try to do.
Anyway, with the mindset that most developers have, we will never have proper dependency tracking.
[1] https://github.com/MacPython/openblas-libs
[2] https://github.com/MacPython/gfortran-install/tree/d430fe6e3...
[3] http://coudert.name/software/gfortran-4.9.0-Mavericks.dmg.
The big one, which surprisingly places still manage to fumble due to poor process controls or simple mistakes, is that you have to restart all running processes that use the library after you update it.
I actually prefer to deploy static builds of critical services for this reason, because you already have to know that you're running version 1 build 5 everywhere -- and if everything is build 5, then they all have the fix. You don't also have to check if the process was started after May 5th.
Clearly they are looking for a way to put some kind of proprietary dependency in Linux by propagating snap to other distros so they can then milk it for cash (e.g. charging a fee for access to the snap store to big publishers like Microsoft/Google). I don't think they realise the mainstream Linux users will hate it for exactly that reason.
I'm curious - are there any Linux distributions that contain nothing but fully static, self-contained binary executables ? As in, ships with no libraries ?
There's a certain subset of developers who are against dynamic linking at all, and they do have some convincing arguments that are worth reading.
I don't necessarily agree with them, but their arguments are worth acknowledging.
It's about getting dependencies with the app. I can't tell you the number of times I borked my OS install because I wanted a version of a single application that had a feature newer than a year or two old version supported in my distro's repository.
It helps to have both as options.
This is all part of a sneaky attempt to get free software in control: Microsoft grabbing more and more power in the Linux Foundation, RMS ousted from the FSF, GitHub becoming more and more central as a default go-to-hosting (beware of Github!)...
All of these are part of a dangerous trend of appropriation and control by well-known monopolists. Don't fall for it. The GAFAM aren't nice guys.
I've been slowly moving off GitHub to SourceHut, and it's been a breath of fresh air knowing that not only is all the software free (so you can self host) but the maintainer (Drew DeVault) is also quite committed to keeping it that way. I feel like I'm in safe hands.
Thankfully it's not yet another GitHub clone, but built around git+email -- so it's far more decentralized by nature.
Currently playing Elders Scrolls Online with Lutris (sorry for the internet downtime, was my first character creation ;). Also playing with minikube and docker to sharpen up some knowledge. All the modern toys easily within reach, making this another year of linux desktop use, only happier with a new nice clean install of a modern solution that mostly works very well. 1 search resolved audio issue for good, everything else was provided from OS.
Something like snap breaks too much of all these community-efforts, that I can only reject it vehemently.
I think Mint's installation is too dumbed down tbqh. But, that said, I use Mint on all of the computers that I don't want to spend time to personalize.
Perhaps however you have more intense personal customization needs than I.
First, I use the command line for package installation and couldn't care less if the store experience is suboptimal.
Second, I use Firefox and anything that discourages people from feeding the Chrome monopoly, frankly, that sounds like a good thing to me.
Third, for some desktop apps I want auto updates. Having an option for some software to be on the latest is pretty slick and previously could only be solved with PPAs, which had their own problems (maintainer headaches, dependency issues, etc).
Would I want them on a server? No.
As a desktop (well, laptop) user, do I want all my software deployed with snaps and auto updating willy-nilly? Also no.
But as a desktop user, I appreciate that I have the choice.
And by lowering the barrier for maintainers who no longer have to worry about multiple distro versions, dependencies, etc, it means I get more software options. Sounds good to me!
The Enterprise Linux ecosystem is a solid alternative to Ubuntu. Fedora for desktop and either CentOS or Fedora for servers, depending on how stable they need to be and how much maintenance you're willing to do.
Very similar roots, also RPM-based, but with a different take on things, such as using Btrfs and KDE by default, which I prefer.
BTW: KDE is not the default, it's just the first in the list :)
I see, so we're angry about things that haven't happened yet. TIL the OSS community has precogs and this is Minority Report!
Look, I get that two whole packages out of literally tens of thousands did this (I've seen lxd and chromium mentioned). But why don't we convict Canonical after they commit their crimes, eh?
How are there greater sunk costs related to switching distros later instead of now if Ubuntu starts actually misbehaving in a significant way?
I grant you, if you haven't picked a distro yet and this whole thing bothers you, by all means, pick something else! That's the beauty of the Linux world!
But if you're already in the ecosystem (and I have to assume most people complaining are... Otherwise why waste energy complaining about the actions of a company that doesn't affect you) I don't see how the sunk costs fallacy applies here.
So yes, there could be huge sunk costs. After fighting with this work laptop for a full work day to get every single step of the onboarding completed, I am not looking forward to doing it again -- even less so if the proprietary and mandatory programs that I have to install can't be guaranteed to work on anything outside Ubuntu.
> But as a desktop user, I appreciate that I have the choice.
Just so we're clear, it's not that the apps auto-update, it's that there's no way to stop them auto-updating.
Unlike Windows 10 you do have a choice here.
One of the biggest problems with Windows is that every app sets up its own update policy and comes from its own App Store. (Steam, battle.net, etc.,) But that's Microsoft's fault for doing too little, not for doing too much. And that's actually kind of nice.
So do I.
Their botched rollout of Edge, including installing it without my permission and placing it on my taskbar, shows that no, you don't have a choice.
> I can pause OS updates in a control panel.
This is misleading at best. You can pause updates for a time period but they're forced at that point.
I don't know why you're comparing it to Windows 10.
Actually you can.
https://snapcraft.io/docs/keeping-snaps-up-to-date#heading--... for instructions on how to defer updates.
If you want to install a snap such that it never updates, see https://forum.snapcraft.io/t/disabling-automatic-refresh-for...
I'm still of the opinion that this should be a front-and-centre feature. Install from the snap store, disable updates for that app specifically, still have to tied to its store instance for manual future updates.
Is this a practical issue for me? Actually, no. However, the fact that they didn't just include it from the beginning is a clear indication that Canonical and I are starting to differ in our thinking when it comes to the autonomy of the user. Also the fact that they didn't allow you disable updating, but merely postpone it for a maximum of two months.
This issue, combined with the snap server being closed source and controlled by a for-profit company that seems to care less about FOSS with every Ubuntu release, makes snaps a very hard sell to anyone with common sense.
With the direction Linux is heading between snaps and systemd, and old-school holdouts like Void and Slackware suffering from a lack of developers and long-delayed releases respectively, I'm leaning more and more towards adopting OpenBSD for daily driver use. Performance has improved, quality of life has immensely improved, and the team behind it actually cares about putting out correct, working, secure software.
Sorry, rant over and I really went out on a tangent there, but my original point is that snaps are definitely no good for the future of Linux and I believe will be a detriment to the platform going forward.
When I need to install some random app from the internet (last one I had to install was an advanced PDF viewer/editor) I manually unpacked the deb and found the binaries and run them as regular user.
For one multiple problems with linux containers due to lxd now being a snap package, which auto updates, restarts and sometimes doesn't like switching networks.
Apps that needed mounts that weren't there.
I mainly use nix packages now for ease of installation, removal, updates and for nix shell.
Need to run a shell with ffmpeg? `nix-shell --run bash -p ffmpeg` And ffmpeg is gone after the shell terminates.
I'm sorry but can you explain? How exactly is Snap helping Firefox? (I'm a Firefox user and I have never used Snap)
Is the snap version of FF maintained by Mozilla, by any chance?
I guess a more succinct way to put it is: I actively oppose chrome and really don't care if the snap haters are screwed by Canonical's approach to packaging it.
The real problem for me though is that snaps are slow as hell. I mean like taking 4-5+ seconds to open on a box with an SSD, i7, and 64GB of RAM. That's unacceptable.
The icing on the cake for me is that even through the command line as you mention apt now seems to be giving me snaps instead of debs for a great deal of programs, which affects much more than the store experience. And, also, regarding said store experience: if stuff like Spotify takes 5+ seconds to open I doubt a user coming from Windows giving Linux a try is going to want to stick around long...it would be great if there was just a better solution.
Spotify is specifically one of the snaps I use and frankly, I noticed it seemed to start a little slow but just assumed that was because of Electron or something. I literally don't care and never thought anything of it. I run it, it starts, and then I don't close it.
Besides, if Spotify users reject it, they can always switch to PPA or something else. It's their choice.
> apt now seems to be giving me snaps instead of debs for a great deal of programs,
"a great deal"? I've seen two mentioned, chromium and lxd. Where else have you encountered this where Debian has a package available from a maintainer but a snap shim is used instead?
Apt will also tell you a snap is available if there's no deb but that's just useful information.
Some apps, like Chromium have no alternative ppas available.
I installed KDE Neon 20.04 and when I discovered that Chromium was being switchted to snap, I searched for any current *.deb out there. NO proper ppas, just found some outdated Chromium 1-3 versions behind the current version.
If it wasn't for the KDE from Neon, I would have switched of distro in the hour. I switched to Chrome instead.
Got some old compiled Chromium just to have the thing available (I can just run it when I need it, it takes maybe 1/4 of sec to start).
Just hope Canonical doesn't try its snap thing in more critical packages or (FAR) worst, in the LTS server versions.
I would be getting popcorn to see the show when half the Internet start to ditch the LTS overnight over some half-propietary half-baked software being put in charge of its otherwise perfectly GPLed infrastructures.
It's cheaper/easier for them to publish one version across all of Ubuntu.
It's C++ with CEF
This is not what happens. The vast majority of users don't know or care why something is slow. They'll just say "Ugh, Linux is slow, I'm going back to Windows."
"If you make it idiot proof only idiots will want to use it". - this holds true. Canonical made the conscious and deliberate decision to treat users like morons by not even giving us the ability to decide how and when to install updates.
I gave up on Windows because of their blindly hostile approach to users, I won't be installing the latest Ubuntu - opting for Mint instead.
But snaps are - for me - A LOT SLOWER than everything else out there.
*.deb, binaries run stuff in less than a second.
Flatpacks, appimage, I have those running in a second or two. Snap, for the same app takes 3-5 sec. sometimes (I wouln't know why), it evens takes as much as 8-10 sec.
NOBODY can get a pass on artificially making slower apps in 2020.
I install everything via CLI and pretty explicitly always avoid the GUI they have for installing software. It's never been good, ever.
I'm on 20.04 and I think it's a fantastic release, head and shoulders better than 18.04.
The only thing in the author's list that I really take issue with is installing a snap when a user attempted to install from a .deb file. That sort of shit is antithetical to linux, and if it continues to get worse would actually be a reason for me to leave Ubuntu.
But everything else is just a non-issue to me.
It's the same poor behavior that lead to the marginalization of Docker.
At least in my case I don't need / don't want any kind of app store in my system (but I understand this is not for everyone; less technical users may not be inclined to installing .deb packages using command line).
And I still follow this thread [2], hoping one day they will clean up the $HOME/snap directory and fix the performance so gnome-calculator doesn't take several seconds to load, but I'm keeping my hopes low.
[1] https://www.kevin-custer.com/blog/disabling-snaps-in-ubuntu-...
[2] https://bugs.launchpad.net/ubuntu/+source/snapd/+bug/1575053
Thankfully there are plenty of fixes available. Here's one of them [1]:
sudo add-apt-repository ppa:saiarcot895/chromium-beta
sudo apt update
sudo apt install chromium-browser
[1] https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-...Sounds wonderful, along with the accrued online karma points. As great as one person is, they will never be the upstream source.
Here's my ppa also, I have a proven track record of updating browsers with security hotfixes hours before anyone else, but on the downside I really don't secure my system at all and leave my laptop unattended in Starbucks, please subscribe:
sudo add-apt-repository ppa:TOTALLYNOTMALWARE/chromium-beta
sudo apt update
sudo apt install chromium-browserMy original point was that replacing your OS because you can't install Chromium seems ludicrous to me, when you can easily find alternatives.
Here's a few better options:
1) Use official packages from debian: https://askubuntu.com/a/1206153/161744
2) Use Pop!OS repositories (assuming you trust System76 folks):
sudo add-apt-repository ppa:system76/pop
3) Compile Chromium from source
https://www.chromium.org/developers/how-tos/get-the-codeI use Ubuntu 20.04 just as I have used 18.04 and 16.04, and the presence or absence of snap doesn't alter the experience for me. GNU/Linux based operating systems will always have a sort of idiosyncrasy inherent to it that stems from the fact that it's really isn't built on fads, and fads are always what would detract from it. Hence, Snap should be used by those who like it, and history will tell us whether it were a fad or not.
I think Ubuntu in general tries to appeal to more of the masses and would try to use things to draw people to it. Nothing wrong with that; you could always use Arch.
But please don't regard a feature that really isn't forced on you by GNU/Linux in general as a reason to, eh, be snapped off it. I use Xubuntu 20.04 and have used Snap here and there and for the most part I couldn't be bothered by whether it works well or not. I do think the topic of whether Snap makes sense, whether it's too slow, etc., is a valid topic to discuss, but I don't see how it should be an argument for or against Ubuntu.
In any case, being for or against something, when really it's only your own business whether you use it or not, does always have a sort of political tinge reminiscent of the aforementioned proprietary operating systems.
I am 100% agree with you.
Also, people complain on other OS that they can't remove or replace an existing software... Here, they can. But they prefer to move to another distro just because of this. I don't understand this world anymore... :(
This is ultimately why their projects are doomed to a 95% failure rate.
I do run 20.04, and one of the first things I did was disable the snap store and enable flatpaks.
But, maybe it's not a bad thing - consider that this maps closely to the app store experiences on both Windows and OS X today. Perhaps it's a great decision for the future users of Ubuntu but not for the current users of Ubuntu. It could turn out beneficial for both Ubuntu and Debian, as I imagine many will switch over. And as much as I'm married to my current X11, it's pretty cool to see them push Wayland through.
Ubuntu is not for me anymore, but I still appreciate what they have done and are still doing for Linux, regardless of what I think of their product and market decisions.
Looks like Mint/MATE is the new Ubuntu for desktop and Debian has always been for server?
If you can switch distro, surely you have the skill to just ignore snaps and use ubuntu like a regular debian system. It required zero effort on my part at least.
1. Ubuntu is replacing "standard" apt packages with packages apt packages that just install the snap version.
2. Many snap packages have bugs that are caused by the snap setup itself.
Thus, it is impossible for these users to "just ignore snaps and use ubuntu like a regular debian system".
Let others figure out the snap debacle.
My issues with snaps are part the ugly and clearly “non-native” startup time, and part that many lack in system integration. For example sometimes their font rendering is uglier or the open file dialogs look bad or present me with the confusing “snap worldview”. Bah.
Auto updating? Who cares. Package managers makes it super easy to keep systems fresh. I heard many distros even do it themselves or come with one click interfaces for it...
I'm ok with default GNOME, I'm beyond cool desktop, I just want something that works. On the other hand I need to be able to install a large selection of software easily, and recent-ish versions of them (hence why not Debian). I also can't have things that upgrade themselves on their own schedule (kids in school with capped bandwidth).
Having done it myself in the past, I understand how taxing creating official .deb and .rpm is for the developers, and how difficult dependencies issues are. Given how Ubuntu is digging itself into the snap hole, what's the best solution here?
Why pick Flatpack vs Appimage? Reading about it they both seem to have pros and cons.
I see a lots of PopOS proponents here, but found that they don't produce that many .deb packages, and the choice will dwindle as Ubuntu's moving more and more stuff to snap. It also was a lot of work to un-customize (going back to a vanilla GNOME).
I'd honestly be happy with even Fedora, if I could easily install most OSS.
I'm sure there are obviously some; anything proprietary or with patent encumbrance requires using rpmfusion or something, and that may be a step further than enabling multiverse. Some stuff just might not be packaged. Ubuntu and Debian repositories are also exceptionally broad.
But I can't, right off the top of my head, think of that much of OSS that I couldn't install either from the official repos or rpmfusion.
Maybe I've just forgotten about any loops I had to jump through, but I've been using Fedora for about six years now (after moving from Ubuntu), and I've found that the repos are much richer than I thought they were. But maybe I just haven't run into the holes that you have found.
There are some things I preferred about Ubuntu, but generally things have been working surprisingly well for me.
I'm definitely going to have another look at Fedora and OpenSuse for that matter (specifically their rolling version for small single service servers).
Thanks for your comment.
My point is that this has been in the making for years now. They didn't fail to deliver a good product, snaps just should have died when the rest of the Ubuntu differentiation on the desktop did.
It's frustrating because for most people, trying linux on the desktop means trying Ubuntu. Freedesktop has succeeded in making a cohesive desktop environment atop linux that is as polished as commercial offerings, but Ubuntu doesn't make that accessible.
My advice to anyone who hasn't tried linux on the desktop lately: try Fedora or Debian on a live CD. I think you'll be impressed, especially if you're coming from Ubuntu. Unadulterated gnome3 is a breath of fresh air.
If you don't want to consume such software, then you don't need to use snaps, and don't need to care that Ubuntu 20.04 supports snaps. The system works perfectly well without them. Snaps aren't being "forced". If you insist on using curl piped to sh to install third party software, you can still do that, or use any other third party mechanism in between.
Too often snap critics conflate the installation of the third party software use case with the distribution itself. Ubuntu 20.04 itself is based on debs, not snaps, and the distribution itself continues to work using apt as always. Claiming that installing another distribution to "solve" this nonexistent problem is disingenuous.
You can't choose to install the .deb version instead, unless you add an unofficial repo.
That is absolutely forcing snap on people, since Chromium was a standard .dep package in the previous releases. And it's not the only package where the transition to snap is forced.
The reason the Chromium deb package pulls in a snap is so that users upgrading from 18.04 or 19.10 continue to get a working Chromium. If you have disabled snaps, then apt will not pull in the Chromium snap.
> That is absolutely forcing snap on people, since Chromium was a standard .dep package in the previous release.
It really isn't. The default web browser works fine and isn't a snap. Chromium has never been installed by default on Ubuntu.
The subterfuge pulled by Canonical is that it now looks like a standard .deb package, but all it does is pull in the snap package, with all the attendant mounts, unmovable snap folder in $HOME, and other snap-related issues that standard .deb packages don't have.
If you disable snaps, you cannot install Chromium on 20.04, unless you use an outdated third-party repo.
Now, I don’t use Ubuntu Desktop, but even in server space, lxd (again, first party) has been pushed to snap, with the deb package being a mere shim.
I had always been under the impression that distribution defaults are suggestions for novice users. We've never had a situation before where a distribution like Ubuntu didn't properly support common alternatives to the default app.
I happen to agree with you completely, and I say that as a 25 year veteran in the Linux world.
The open source world goes through things like this periodically. But then the change passes and we all get used to it and the next controversy comes along.
This just isn't true. Its clear that Ubuntu is moving away from debs and to snaps. LXD is software primarily developed by Canonical and is only distributed as a Snap. Look at Ubuntu Core, the IoT distro by Canonical that doesn't use debian packages at all, it just uses snaps.
It's clear that Ubuntu is promoting snaps where they make sense. That means for third party software distribution, software that is "rolling release" upstream only, and software whose new versions have to be made available to all supported previous releases at once.
There is no evidence that snaps are being promoted outside these specific use cases, none of which fitted proper deb-based packaging anyway.
> LXD is software primarily developed by Canonical and is only distributed as a Snap.
LXD is the type of thing where users expect the latest version on the oldest still supported LTS release. It's not practical to backport as a deb. That's why it's a snap.
> Look at Ubuntu Core, the IoT distro by Canonical that doesn't use debian packages at all, it just uses snaps.
Well, yes. That an entirely different platform, for when the system is updated as a read-only image, which makes sense for appliances and which apt cannot support. It's got nothing to do with Ubuntu the general purpose OS except that snaps are supported on both platforms.
If you just look at the list of canonical owned snaps it becomes clear that every release they move more packages from being debs to being snaps. If the snap store was just for third parties no one would care.
I don't think it's accurate to say that it's the desire to install rolling-released third party software in itself that's the problem. It's the mismatch between the distribution's and the third party software's release cycles that make this a problem, and using a distribution that more closely resembles the software's release cycle does solve this problem without needing Snap.
https://nsonews.com/ubuntu-20-04-lts-snap-obsession-has-snap...
Previous discussion:
https://news.ycombinator.com/item?id=24383276
https://www.reddit.com/r/linux/comments/gc7p1t/ubuntu_2004_l...
It's "pure", modern, and I really like the KDE spin.
The non-pure stuff - when needed - is available through rpmfusion (the non free repo).
Sure, I'm kind of a "beta tester" for RedHat Linux, but on the flip side there's nothing commercial in it.
This single interaction basically turned me off snaps from then on.
At least for me, it would be a spiteful decision to go to macOS of all operating systems, where system package managers don't exist, and the only viable option is a 3rd party Homebrew or Macports repository.
I think we should consider snaps like any other framework, be it deb, flatpak, or even something like Electron: some of them have serious downsides, but people choose them because it allows them to more easily push a single binary out to multiple platforms rather than being bogged down in maintaining a distinct build procedure for Windows/Mac/Deb-based/RPM-based/Arch/Solus/every other percent-of-a-percent Linux distro.
I don't like snaps either--I much prefer flatpaks. But I don't think it's constructive to insult Canonical employees for wanting to make their own jobs easier while they work to provide you a free product.
I dislike Snap, but I like the stable / out-of-the-box nature of Ubuntu.
I don't like distros where I take a week to setup it the way I like.
silverblue effectively gives you the ability to have the benefits of a rolling distro and the benefits of a distro that does releases (stability focused).
I haven't had the time to try it out yet ... maybe a good weekend project. I've been using Ubuntu for over a decade now so it might take some time to switch over.
The only annoying situation I've encountered is having to manually install a non-free network driver, but once that's done I haven't found a single thing I miss from Ubuntu.
Debian.
For some reason I cannot run synaptic.
Removed debian that very second.
Is Chromium the only app that works this way or are there a set of applications where the .deb file results in a snap being installed? Right now, Chromium is the only one I've noticed.
What has ended up happening so far is that distributions bundle all these things into the deb and ship it and hope for the best. It's very painful from a packaging perspective, and effectively turns the deb into nothing better than a bundled app (like a Snap or Flatpak or AppImage) wrapped in a .deb anyway.
I can see this happening to Firefox in the end. For example Firefox upstream added a whole Rust toolchain dependency that wasn't packaged in supported distribution releases. I don't see it happening to anything else, since the rest of the distribution upstreams don't the thing that causes so much deb packaging pain for the browsers.
Or jump ship for a BSD if your hardware is well supported or this is for servers.
They both opt for flatpak instead of snap. Pop prefers apt over flatpak in the graphical app store, I don't use Mint so I don't know how it's done there.
Debian is even more stable and retains apt as a package manager, but you will have older packages for stability and have to customize it a little.
If you can venture out of the Ubuntu space, I have found Manjaro to be an excellent experience in the few months I used it earlier this year. It has very fresh packages since it is Arch-based, but also uses an LTS kernel and has some measures in place on its own repositories for stability's sake. I can't attest to the effectiveness of the latter since I've never had stability issues on Arch, but Manjaro is certainly wonderful out of the box and a very pleasant experience in my opinion.
Notable diferences that might influence your decision are:
- RPMs instead of DEBs;
- Flatpaks instead of Snaps;
- Podman and Buildah instead of Docker (although you can get Docker if you really need to use that);
- SELinux enabled by default (some people don't like this for non-server usage, but I dig it);
- firewalld comes enabled by default, which may be annoying and unexpected if you're trying to get some iptables rule to work (I personally always remove firewalld and install ufw for the things I need);
- Fedora 33 (due for release next month) will be switching to btrfs as the default filesystem, whose features are definitely welcome for home usage (but I'll wait a bit before upgrading and see if people run into any issues);
- I'd also highly recommend installing Pop!_OS's Pop Shell [0] to add great tiling support for GNOME, but that goes for anyone using GNOME really
[0] https://github.com/pop-os/shell
If you like gaming though, I never tried setting up Steam or a ProtonDB game on Fedora to be able to report on that (I think it would be complicated enough to make me wanna switch distros), but if you'll be doing this a lot, Pop!_OS (Ubuntu based, snaps disabled) has a great out-of-box experience with Steam, as does Manjaro (Arch based) which has an excellent hardware detection and driver auto-installer tool called mhwd, and makes setting up NVIDIA cards and other finicky hardware a breeze.
snapd is packaged in Fedora, it's just not installed by default, nor does Fedora have any shim things to force installation of flatpaks or snaps.
> - Podman and Buildah instead of Docker (although you can get Docker if you really need to use that);
By request from upstream Docker, Inc, Fedora renamed the docker package to "moby-engine". It _does_ get installed if you do "dnf install docker" and provides the docker CLI command and docker daemon service.
> - Fedora 33 (due for release next month) will be switching to btrfs as the default filesystem, whose features are definitely welcome for home usage (but I'll wait a bit before upgrading and see if people run into any issues);
This won't impact upgrades. Fresh installs will get this change, systems upgrading will not (unless you want to reinstall to change to Btrfs).
> - I'd also highly recommend installing Pop!_OS's Pop Shell [0] to add great tiling support for GNOME, but that goes for anyone using GNOME really
pop-shell is available as a COPR for Fedora: https://copr.fedorainfracloud.org/coprs/carlwgeorge/gnome-sh...
> If you like gaming though, I never tried setting up Steam or a ProtonDB game on Fedora to be able to report on that (I think it would be complicated enough to make me wanna switch distros), but if you'll be doing this a lot, Pop!_OS (Ubuntu based, snaps disabled) has a great out-of-box experience with Steam, as does Manjaro (Arch based) which has an excellent hardware detection and driver auto-installer tool called mhwd, and makes setting up NVIDIA cards and other finicky hardware a breeze.
GNOME Software will let you easily install Steam and the NVIDIA driver with a few clicks in Fedora Workstation. It generally works pretty well.
It allows to have HUGE amount of software available with the trade-off that the files you are asking for are not in cache, it is slow to retrieve them (need to retrieve each one of HTTP.)
Would people be interested in such filesystem distributed in the wild?
The /bin directory would be put at the end of your $PATH, as a fallback, you got the local version, great use the fast one from your SSD, you don't have that particular software, good, wait a tiny bit and get it over the network if you didn't store it in cache before.
I would find it useful for development tools like compilers or interpreters, that it is always quite a mess to install locally.
Snaps have a permissions system backed by AppArmor and Seccomp that confines the snap to a sandbox with limited privileges based on a security profile.
You can read about it here:
- https://core.docs.ubuntu.com/en/guides/intro/security#headin...
- https://snapcraft.io/docs/interface-management
Flatpak does have a sandbox but in practice, many flatpaks do not use it securely. You can read about it here: https://flatkill.org/
AppImage does not seem that security is one of its goals.
So, for the time being I'll keep using snaps. They're a great idea :)
So, tl;dr: Snaps are not only about packaging. They confine software to a sandbox with limited privileges.
Regarding MacOS. I am using this for the first time at work and I don't know how you could go from a rich APT ecosystem to a so-so brew ecosystem. And really fuck the Command Key and all the other weird Mac-isms. I don't see the value in that over priced hipster operating system, but if thats where your at home than enjoy your home. Oh and I'm still trying to figure out if Docker is a comedy or tragedy on Mac.
The only real complaint I see here is that automatic updates don’t allow you to control them. That is a real shame but also isn’t inherent in the design of snaps so could be fixed.
Part of the problem is that making .deb packages is an arcane art. I wish it wasn’t. And dependency hell of “well this version of the distro comes with libxxx 1.1 and the other one has 1.0.7 and now I need to build multiple versions of the package just to make it work for 20.04 and 18.04” does suck.
I do love Debian as a platform and I don’t use snap, but I also use macOS as my desktop OS and guess how Chrome is packaged and installed there?
If I had a visual way of installing snaps with the Ubuntu app store, I would use it no prob but adding 3rd party repos isn't a viable option for me when I could make do with the default vetted repos. I had to change my CI/CD config where I ran accessibility tests with Chrome's web driver into another distro because Ubuntu broke their previously functioning functions. Building from source would be possible but it's slow and costly to run for every commit.
It is clearly a NO GO Canonical, you can't ship slower apps (that start in 3-5 seconds), that out of snap (or in Windows), start in less than a seconds.
snapped Chromium takes 3-5 seconds in its first start in a 16GB ram, corei 5, ssd based machine. WHAT?
In the same hardware the .deb Chromium takes maybe half a second to load and be fully responsive.
The occurs with LOTS of software, and yeah, the start time of an app IS a thing.
If something takes more than half a second to start, and you know it is A LOT faster, you end up pissed off,
What have they done with MY hardware and why?
If Canonical start to annoy me with many more packages forced to snap like chromium, I'll be jumping to whatever distro lets me start MY apps in less than a second, as it is usual in 2020.
And if this unfinished, unpollished crap starts to show off in Ubuntu server in its current sorry state, I cannot express how fast I will be ditching LTS for Debian or anything "not snapped".
You NEED to make this thing to start A LOT FASTER,
and stop making "end user assumptions" about what you could mess up behind scenes in the system (yeah, you could end stomping actually useful things like sleeping in notebooks).
There are multiple gui frontends for apt. Are we disingenuously pretending this isn't so?
> Compile from scratch
On a lot of laptops this would be 24 hours of straight building which would have to be redone when underlying libraries changed. This would further be non obvious until after an update your browser didn't open. Furthermore the setup for building it would be apt pun intended to be at least slightly complicated and errors caused by lack of say the needed dev packages would be non obvious and confusing to regular users. Pretending this is a reasonable alternative is of dubious value.
The browser is the single most important application on most users computer. Syncing it by itself and the users profile, settings, bookmarks, and passwords restores much of what the user expects from their computer. Providing no obvious way to install it without learning about ppas and wading through tons of out of date ppas to figure out the correct one that works with your system is non obvious, non discoverable and frustrating. Virtually all new users will end up with the snap version and thinking linux is just slow.
>guess how Chrome is packaged and installed there
Methodologies for packaging have different attributes and downsides Snap != Mac OS
I never said to recompile everything, just specific things. You don’t need to rebuild your kernel, libc, compiler, and so on to compile Chromium.
Snap is not the same as macOS apps. But macOS apps are self-contained statically linked apps most of which don’t hook into centralized updating services. Yet macOS is more usable than Ubuntu (I say this as someone who desperately wishes the reverse was true). macOS apps have more in common with snap apps than with dynamically linked .deb packages.
Conversely I have used a variety of app store interfaces on various linux distros that were quite usable and pleasant with search functions that actually worked.
Here for example is a relatively recent video showing installing software via the Linux Mint Software GUI
The last (LTS) great UI experience and where I think Ubuntu peaked was 16.04, but of course it's not practical to keep running that forever. I've since moved to using a mac last year and it's been okay. I'd love to go back to Ubuntu, but not to the thing it has become. Maybe I try another Linux distro, but I also want something stable.
> "I have a soft spot for it, especially the amazing Unity days."
I found that funny since unity was why I left ubuntu (sort of, cos Linux mint) until I discovered i3wm and came back without unity's stupidity.
Funny, that's exactly what I thought when I tried a MacBook for the first time. Everything just seemed off about it and I spent 11 months trying to tweak it until it was just right, but never got to that point.
30 minutes on Pop!_OS and I'm good to go.
Also, why snaps?
I'm sure they'll eventually abandon snap just like they did with all their other attempts at introducing their own stamp on Linux (like upstart, mir). Just hope it'll be soon.
The article has been updated to accommodate changes since the original four months ago.
I use them to install Blender and Godot on my Elementary laptop because it's simpler to do so than other ways, and (even the isolation is slightly broken in Blender's case, which requires a legacy flag), it is _super convenient_.
But, again, why complain about an optional thing that benefits many people?
People who keep saying snaps are optional, and so forth are ignoring the bigger picture here. You know, I am just going to use a Linux distribution with saner defaults, where I do not have to disable Snap to begin with.
The conclusion is inescapable: they do not care. And that is why we should all find alternatives.
For example, NVidia's Jetson platform is based entirely on Ubuntu 18. You can't run it with other Linux distributions (or you end up with broken stuff left and right).
Therefore, vendors, please (!) build your products around kernel drivers, not around Linux distributions.
I tried Debian but was disappointed with the “latest” versions of software I received on stable.
I do like the apt system and systemd and other features of the latest Ubuntu, so something that doesn’t fall too far from that tree would be ideal.
Any suggestions for alternatives?
https://www.kevin-custer.com/blog/disabling-snaps-in-ubuntu-...
I have two monitors, but Ubuntu thought their positions were swapped. I swapped them back in settings and it looked good and I hit enter to accept "is it good" pop up. Then I noticed my mouse was on left screen while it registers the clicks on right. Took me quite a while to revert it back
Firefox was really unresponsive. Was hanging at times and generally felt slower
This is subjective, but its UX sucks really. I tried to install some apps, there is like 3 different application managers? None of them was pinned.
Can't even install 7z via application managers. There is one application but it didn't work for me. Had to use console.
Can't install unrar by default unless you add some repositories. I guess since it is not free. It is even harder for codes since they are just binaries I think? And they come with a package that contains a lot of other stuff that includes chromium? Wth
Tried to figure out what my local ip is, couldn't find it on any user interface. Opened console typed "ifconfig" and it is not there now. I had to google which command it was
It decided to do some random updates in the background and stuck I think. It had apt-get lock, which was blocking me to install applications manually
--
In my opinion Ubuntu Desktop is not improving, at least for average Joe (and I am a bit above that). The opposite really.
Supporting fewer competing formats (and eventuallu just one) sounds like progress to me...
>And that’s another place where snaps don’t shine. They are slow. I hate that Chromium’s snap takes more than 10 seconds to load on cold boot on a freaking SSD, whereas .deb and Flatpak apps load in 1-2 seconds. Snaps are simply not fast enough to be default anything yet.
That said, this sucks. How can this be? I though snap was just some packaging wrapper format (so one wouldn't expect any difference in loading time) -- is it more like ELF instead? Or is it some extra overhead like non-shared libs?
The progress being having a single standard -- then all the software will be available for that.
Mixing and matching 2-3 different package/distribution formats to get all of your software because some is available in one and not the other is not ideal, and doesn't lead to a consistent sytem.
Third party software developers wanting to push their latest software releases directly to users, and for users wanting to install such software.
For users who are happy to use the traditional distribution-curated model, getting all "feature" software updates when doing a distribution release upgrade only, snaps are not necessary and you can use Ubuntu 20.04 perfectly fine, as normal, without using snaps.
As others have pointed out, Chromium is no longer packaged as a deb. You can use Firefox, or get Chromium from another source. An AppImage is available for example. I haven't tried it, but it should be functionally equivalent to using a distribution deb.
Or use Google's Chrome deb, for example.
I do use it for LXD, where it's the only way to stay up to date.
Interesting...
Ubuntu might have been able to make this a smoother process, but they lack the literal BILLIONS of dollars that has been spent achieving that on other operating systems.
If you want to be an old greybeard, use apt or build it from source.
Sandboxing desktop applications on Linux won't happen until distros start shipping strict SELinux policies that properly confine programs like Android does. Along with flatpak/systemd taking allowlisting seriously combined with stricter seccomp filters.
Please if you maintain any packages with systemd units go read this right now and harden them, it should only take a few minutes: https://www.freedesktop.org/software/systemd/man/systemd.exe... Verify them using 'systemd-analyze security $unit'.
They could have just stepped aside and used one of the alternatives—priceless.
Not to mention it doesn't cost billions to develop a read-only chroot archive, the building blocks are available to combine. Just have to have the humility to choose the most elegant design, which already exist.
The use of 'just a chroot' thinking brings all the problems and none of the gains.
Snap is an endless source of frustration. Unless you jump through a bunch of hoops, apps can't access network mounts, you have the obligatory ~/snap folder, startup times are atrocious, and I'm seeing a number of weird glitches especially in Chromium.
Flatpak is marginally better, but has a lot of similar issues.
At the end of the day users like me matter.
I cannot find 1 decent pomodrone app for linux. I now have 2 of those from snap store.
I could not get that mycroft ai app to run for some reason. One in snap actually works.
Ya the startup time is noticeable but they work.
For intermediate like me and noob users its awesome.
Edit: also purple task is good to do list maker. So at the end of the day what ever attracts developer to make cool little app is a win for me.
Maybe Mint next.
Wtf. Looks like I must have been living under a rock! What happened?
A proof if you needed one that the "SJW" or "baizuo" culture isn't at all progressive, but a dangerous intolerant bunch more akin to the Khmer Rouge than anything else.
https://www.zdnet.com/article/richard-m-stallman-resigns-fro...
Then they basically admit in the article that truth or justice carry no weight whatsoever, but that "good PR" and social media trends are what count.
Revolting. It's disgusting beyond any measure.
It's significant that you talk of "the open source community". I'm not of "the open source community" (less than ever, in fact), I'm firmly in the "Free software community" and an FSF member for 20 years. I don't remember ever having a disagreement with RMS on any important matter.
Despite his numerous and off-putting shortcomings, many people (incl. myself) still believe RMS to be the best person for leading the free software community. His unyielding stance on how software should be used and shared is exactly what the FSF needs in its leadership. All the issues you and others list to justify RMS' dismissal are orthogonal to this task. Yes, this also includes the toe thing.
I have personally stopped supporting the FSF because of this incident after about a decade of support, and I no longer include the "or-later" clause in my GPL software.
Where did you get the impression that wazoox considered RMS's dismissal in any way justified or justifiable? The comment you're responding to literally says:
> > I don't remember ever having a disagreement with RMS on any important matter.
Also:
> and I no longer include the "or-later" clause in my GPL software.
I'm embarrassed to admit that this problem didn't occur to me until you pointed it out; thank you; I need to go fix that for my own software.
https://medium.com/@selamjie/remove-richard-stallman-appendi...
Tbh I think some of the memes about him and his sexuality might be valid. If that's the case, then frankly he should have been cut loose a long time ago.
I'm not entirely a fan of how far RMS goes on some tech issues, but this all just feels dirty and wrong.
He said it was likely that some women of Epstein's presented as entirely willing to Marvin Minsky. This was twisted by the press into him saying they were entirely willing.
For this he was ousted.
Or am I just missing something?
They were just weird?
He never actually did anything and he never actually said anything hateful?
I don't know it seems like a case of talent getting beat out by politics.
I could be wrong I don't know much about it but that's what it seems like on the surface.
If you look outside the Anglo bubble, you'll discover that sexual relations between teenagers of various ages are not uncommon at all.
Statutory rape LITERALLY means "consensual sex with someone below the age of consent". Because if the sex was non-consensual, it's called rape regardless of age.
RMS's biggest problem is that he was technically correct, but surrounded by a society of idiots.
Many states have "Romeo and Juliet" laws, which decriminalize sexual relations between people under the age of consent as long as they're similarly aged, solving the biggest issue most people have with the idea of statutory rape ("what if children rape each other?").
I use the term "sexual relations" because the act of sex necessitates consent. And although sexual relations with children may be uncommon outside of the "Anglo bubble", they still harm the child whether via physical or mental trauma.
The question is whether or not a 15 or 16 year old can consent to non-harmful sex, and the answer is obviously yes. At that point they are sexual creatures with their own urges. two 16 year olds having sex is not harmful in any meaningful way, many many people start having sex at 16 (or younger) and go on to be just fine.
At this point, as far as I'm concerned, it's been clearly established that young people under the age of consent _CAN_ actually consent to sex.
Statutory Rape is not about consent, it's about manipulation. Due to the differences in life experience between a 16 year old and a 20 year old, the 20 year old can manipulate the 16 year old to give that consent. This does not imply that the sex between them is implicitly harmful to the 16 year old, just that it's immoral for a 20 year old to do this sort of manipulation.
It's also clear that a 20 year old can rape a 16 year old. Actually rape. And they'll be charged with rape, regardless of the age of consent. This is because, by definition, with statutory rape the 16 year old DID consent.
And one last piece of evidence to show clearly that you are wrong here.
It's possible for 2 25 year olds to have sex and statutory rape charges be brought. How? Because one of them is mentally handicapped.
Because Statutory Rape is not specifically about the age of consent, or giving consent. It's about the coercion of someone who is not considered mentally capable of protecting themselves from said coercion. It's about the morality, not about any sort of inherent harm of the sex itself.
And to head off one argument that I KNOW is coming. The age of consent in Japan is 13, pointing out that the age of consent is 16 in many places in western civilization is not meaningful or useful here. It doesn't change the ideas that I've presented in this post.
As someone who has ever been a teenager at any point in my life, I second this objection. There's plenty of overlap, but those aren't the same thing.
In part of this[1] he's nit-picking RMS for choosing to spend time laying out his personal preferences in a rider for speeches, and, none of them are really outlandish beyond what you expect for a privacy-focused free-speech-free-software person. I don't chose to live my life as RMS does, but, I won't begrudge him his choices.
The worst thing he could pick on is "I don't want breakfast, please don't ask."
He just comes across to me as petty and sanctimonious, in this, and in general recently. I'm not sure which one of us has changed.
Also some of his choices are quite humble and heartening and make me like RMS quite a bit more. "I don't like hotels, I would prefer to stay in someone's home, even if I'm sleeping on a couch, so I can socialize with them." He seems like a nice enough guy.
The great thing about free and open source software is, if a distribution or package maintainer does something you don't like, you don't have to use it. Simply modify to suit your desires, and enjoy.
But I guess it's easier to just complain loudly and with an inflated sense of entitlement, despite not having put in any work whatsoever.
Systemd did things differently, sometimes annoyingly, but the intention was still to allow you to control your own system. It also ate other projects (e.g. udev) and sprouted features (resolved, timedated, etc.) making it difficult to untangle, but it was/is still possible to do so.
The biggest complaints I see about snap as currently implemented are related to making arbitrary outbound network connections, automatic updates that you can't disable, and inability to mirror or vendor snaps or an entire archive / repo.
These don't seem similar to me at all. Systemd is opinionated, perhaps in a non-unix-philosophy way, but still preserves users' freedom. Snapd does not.
If you have a system with snapd, your system is doing things that you can't disable without replacing the system wholesale. The Microsoft-levels of telemetry and lack of control seem to me clearly worse in every way than anything that was ever wrong with systemd.
I don't actually believe that snapd is irredeemable, and think that these things will eventually be fixed, either as they progress on their roadmap, or as a response to user outrage. But I don't really understand how it got shipped in such a state. In particular, the non-disableable silent updates seem to me like a complete non-starter for a server operating system. How are you supposed to schedule maintenance? What were they thinking?
I like auto-updates. I almost always turn them on. But being able to turn them off is an important bargaining chip, to pressure devs to behave. I'm not excited about giving that up.
I love Ubuntu and haven't had any problems with Snaps via the software center in Ubuntu.
I use apt at the command line so I may not be getting the brunt of snaps problems.
But using Sublime, Chromium, Spotify, Intellij, has been pretty flawless for me so far.
Maybe I'm not a snap power user.
Ubuntu desktop is wonderful. Not as good as Mac imo, but infinitely better than Windows.
Just wanted to stick up for Ubuntu a little.
I think it's great there's finally an open source Desktop OS that is as nice to use as the big two and I hope they continue their great work.