But new users don’t even know what snaps are. They don’t care. We care because we are crazy bastards
What’s snaps?
I am so sorry this got so long. I’m absolutely horrible at brevity.
Applications use things called libraries to provide particular functions rather than implement those functions themselves. So like “handle HTTP request” as an example, you can just use a HTTP library to handle it for you so you can focus on developing your application.
As time progresses, libraries change and release new versions. Most of the time one version is compatible with the other. Sometimes, especially when there is a major version change, the two version are incompatible. If an application relied on that library and a major incompatible change was made, the application also needs to be changed for the new version of the library.
A Linux distro usually selects the version of each library that they are going to ship with their release and maintain it via updates. However, your distro provider and some neat program you might use are usually two different people. So the neat program you use might have change their application to be compatible with a library that might not make it into your distro until next release.
At that point you have one of two options. Wait until your distro provides the updated library or the go it alone route of you updating your own library (which libraries can depend on other libraries, which means you could be opening a whole Pandora’s box here). The go it alone route also means that you have to turn off your distro’s updates because they’ll just overwrite everything you’ve done library wise.
This is where snaps, flatpaks, and appimages come into play. In a very basic sense, they provide a means for a program to include all the libraries it’ll need to run, without those libraries conflicting with your current setup from the distro. You might hear them as “containerized programs”, however, they’re not exactly the Docker style “container”, but from an isolating perspective, that’s mostly correct. So your neat application that relies on the newest libraries, they can be put into a snap, flatpak, or appimage and you can run that program with those new libraries no need for your distro to provide them or for you to go it alone.
I won’t bore you on the technical difference between the formats, but just mostly focus on what I usually hear is the objectionable issue with snaps. Snaps is a format that is developed by Canonical. All of these formats have a means of distribution, that is how do you get the program to install and how it is updated. Because you know, getting regular updates of your program is still really important. With snaps, Canonical uses a cryptographic signature to indicate that the distribution of the program has come from their “Snaps Store”. And that’s the main issue folks have taken with snaps.
So unlike the other kinds of formats, snaps are only really useful when they are acquired from the Canonical Snaps Store. You can bypass the checking of the cryptographic signature via the command line, but Ubuntu will not automatically check for updates on software installed via that method, you must check for updates manually. In contrast, anyone can build and maintain their own flatpak “store” or central repository. Only Canonical can distribute snaps and provide all of the nice features of distribution like automatic updates.
So that’s the main gripe, there’s technical issues as well between the formats which I won’t get into. But the main high level argument is the conflicting ideas of “open and free to all” that is usually associated with the Linux group (and FOSS [Free and open-source software] in general) and the “only Canonical can distribute” that comes with snaps. So as @sederx indicated, if that’s not an argument that resonates with you, the debate is pretty moot.
There’s some user level difference like some snaps can run a bit slower than a native program, but Canonical has updated things with snaps to address some of that. Flatpak sandboxing can make it difficult to access files on your system, but flatpak permissions can be edited with things like Flatseal. Etc. It’s what I would file into the “papercut” box of problems. But for some, those papercuts matter and ultimately turn people off from the whole Linux thing. So there’s arguments that come from that as well, but that’s so universal “just different in how the papercut happens” that I just file that as a debate between container and native applications, rather a debate about formats.
Sounds like docker with a load of extra steps.
I think of snap and flatpack as docker containers but for GUI apps.
There’s more differences of course, but I take that as the gist.
I understand less now.
Take that person’s post, comparing it to cooking.
Sometimes you use a
Librarypre-made sauce or spice blend as part of a recipe, so you don’t need to waste time remaking something that is commonly used.Every so often, a company will tweak the recipe for the things you are using, but it still basically tastes the same. Sometimes they just decide that now it’s salty instead of sweet, so it would complete ruin the dish you would like to make.
The recipe you are using assumes you live in Australia where the new version of the sauce/spice blend is more common, but where you live still only sells the old version.
So now you can either wait for the store to sell the new sauce/spice blend, import it from Australia, or try to make it yourself. But you might have another recipe that still needs/uses the old sauce/spice blend. Needing to have both can lead to issues where you use the wrong one, ruining the food you are trying to make.
This is where
snaps, flatpaks, and appimagesthose dish-in-a-box kits come into play. They’ll have the correct version of the spices/sauces you want, so it doesn’t really matter which version you have in your kitchen.Snaps branded dish-in-a-box kits are developed by Canonical, and they can be kinda weird. You need to check
for updatesif you need to re-buy them manually, and you can only get them from the “Snaps Store”. Other dish-in-a-box kits allow you to get them from whichever store you want, and will automatically re-order when needed.And that’s the main issue folks have taken with snaps. If you
have 50+ programsare making a meal with 50+ dishes, and you need to constantly check if you need to rebuy them one by one, it gets old quickly.
Also, Snaps takes up a lot of room, and generally just kinda suck compared to installing things normally or through flatpack.
I would have liked more technicalities, but wonderful write-up. Thanks
My first introduction to them was “hey why does startup take so long now? This machine used to be so much faster.” and realizing it was snapd that was eating up the time. It’s also not exactly efficient at using storage compared to native installs of dependencies.
For a desktop these may not be noticable but for low power embedded systems it’s a nightmare. It should be an option but really isn’t ready to be default. And when appimages are already a thing that work well I don’t really see the point.
Appimage has no sandbox
An AppImage can be sandboxed.
I’m not suggesting appimages are better, just that I’ve had fewer problems with them relative to snaps. Ultimately I’d argue all attempts to remove dependencies are not ready to replace typical packages for low powered systems. For desktop Linux the performance difference is negligible anyway.
Here friend, I also didn’t know
Snap is a software packaging and deployment system developed by Canonical for operating systems that use the Linux kernel and the systemd init system. The packages, called snaps, and the tool for using them, snapd, work across a range of Linux distributions[3] and allow upstream software developers to distribute their applications directly to users. Snaps are self-contained applications running in a sandbox with mediated access to the host system. Snap was originally released for cloud applications[4] but was later ported to also work for Internet of Things devices[5][6] and desktop[7][8] applications.
You must have a container to be able to run a different library version?
Why not run like Android API version level?
So (having tried various distro for almost 2 decades now, but always reverting to windows) the two useful things as I read that are 1) not having to know thst some bullshit distro doesn’t use apt and you need to figure out wtf the package manager is because this distro is a special snowflake and they wanted to show the world by being a bitch and not using apt; and 2) direct from devs, which is nice and imo preferred.
But like… native packages mostly handled this? I’ve been watching from the sidelines for a few years as this happened and I’m still like ‘this is a solution looking for a problem, and adding complexity in the name of simplicity’.
Can I get a tl;dr on flatpak? I think it’s basically snaps but again ‘we can make this standard better! by creating another fragment to the available standards!’ which is just, ugh.
That kinda is (one of) the big issues with Linux, in my eyes - everyone thinks their shitty implementation is best, and this happens for everything, and so instead of having one standard for everything you have 53 and none of them get the proper dev time and so ‘I can do this better’ and now you have 54 standards and […]. Like, it’s cool to be able to patchwork together the special sauce of 18 distros manually, but like… There could be consolidation and then 1 would have the special sauce of 18 in a user-friendly iso instead of taking 35 hours to get working. As a user, I want shit to just fucking work, or be moderately easy to get. Adding more fragmentation to the space is doing a disservice to the whole community.
My thoughts.
I’m using Linux for almost 30 years and never use snap or flatpak. I install native apps with apt or pacman or whatever.
I’m not completely sure but don’t flatpaks offer good sandboxing. If they do it could be a good idea for people who use/need proprietary software like steam and zoom so when you run those programs at least it can’t read through your files and stuff
You don’t need to break everything that exists, cause maintenance issues and incur that much overhead to have sandboxing. The security features that allows sandboxing in the first place are also available for regular binaries not installed in some weird ways, with all their advantages and flaws.
Snap is just Canonical’s way of getting more control over things. The only upside of Snap was “easier distribution”, which turned out to not be that true. The downsides, however, especially regarding maintenances and software updates, are very real.
about flatpak’s sandboxing: https://madaidans-insecurities.github.io/linux.html#flatpak
The problem is they don’t care until it becomes an issue which by then becomes harder to fix. I also just really hate snap lol
When would it become an issue?
I think they would care if they knew the benefits of not having snaps.
There’s little to no advantage in having them, so why have them?
Snaps just create additional confusion
Do they really cause confusion? Or do they make software “just work” which is much more important to a new user?
It’s confusing if there are more than one version of an app and the fact that the command to install one installs the other doesn’t make it better
There’s already more than one version without snap, it’s already a confusing mess. Not all distros are compatible with the exact same binaries. And people probably don’t want to compile everything form source.
Snap could potentially unify things, and remove all of that confusion.
And then Canonical would control Linux apps, sounds like a good idea
well the first one definitely to a new user, the secod one it “just works” in the same way Fallout 76 did.
it was confusing for me when apt install Firefox installed the snap version
Flatpaks are just as easy to use without the drawbacks of snaps. There’s no reason to use snaps excet for Canonical pushing them on end users.
And frankly snaps frequently don’t work well, that’s the entire reason people hate them.
deleted by creator
I recently started using Mint after years on Debian.
I may be weird here, but it has quickly become my favorite distro.
It’s snappy and super user-friendly, plus it’s been de-Ubuntu-d. Out of the box Flatpak support is just nice to have, and Cinnamon is a sweet de.
I’ve done my fair share of distro hopping. Mint is the distribution that I have to do the least amount of configuring starting from a clean install.
It’s the most stable distro I’ve used so far. Manjaro just seems like it’s a ticking time bomb just waiting for borked o’clock to come. I couldn’t get Nvidia drivers working on fedorat all. Ubuntu was just slow as ass. I don’t know why. But it was just fucked from junk street. I’ve given it a go a few times. Just slow wet ass. Kali is snappy and clean but not meant to be a daily driver. Not would I use it as one.
Mint works. It’s relatively snappy. I like the gui. It’s customizabe.
I use Mint, and I found that it’s the best distro for introducing my family to Linux. Those who tried it never asked for their Windows back.
Totally. Man I gotta try an updated mint and see if it will work for gaming. I miss the stability.
So far I’ve got Steam running flawlessly. Haven’t tried much else yet.
As an anecdote, the only games that I play that require more fixing than pasting something into the launch options or using another version of Proton are VR games. Half Life: Alyx somehow works perfectly fine. Otherwise the devs forget to tick the box in their anticheat to allow Linux.
Good to know!
For now, I ended up reinstalling Nobara until I can test if Mint on 5.19 kernel has fixed the issue with my RX 6600.
Nobara is great for my gaming so far. But wouldn’t mind a more mainstream distro that has fixed some of the less common bugs I seem to always find.
Jokes aside, this kind of gatekeeping behavior is what gives Linux a bad name. Also, you don’t have to be a beginner to love Linux Mint.
You just have to not care about Wayland ;D or modern software
There’s actually linux mint debian edition rather than ubuntu edition
wasn’t it stopped? was using it around 2012 but thought they stopped maintening it.
Liked it because there was no need for version upgrade
Nope I use it and they are on the most recent stable Debian. No snaps and built in flatpack support.
LMDE6 came out within the last couple of months. It’s based on Debian 12 which, at time of writing, is less than 6 months old.
Upgrading is still wise every couple of years because the base Debian distro also reaches EOL, but yes, rolling updates occur constantly in the meantime. Provided the system owner allows them to anyway.
I’m running the most recent version, based on Bookworm, as my daily driver.
You probably thought that because debian moves so slow.
I was running Linux Mint until the other day when I found out Linux Mint Debian Edition existed so I installed that. I’m a recent Linux convert and I can safely say that Lemmy might have partially been the reason. I’ve been loving it so far.
Mint is great. I love it when shit just works.
Todd Howard Approved™️
Quit Linux? More like quit [non-server revisions of] Ubuntu… Besides, I somehow have an impression that preinstalled crap is among the popular reasons to why ppl leave windows
All the talk of Mint lately. Looks like my fifteen-year Ubuntu streak may be coming to an end. Will I, decidedly not a power-user just an Internet browser, occasional game player, Csound programmer, Libreoffice user notice a difference? Is Mint better at printing? That’s the only real problem I’ve had with Ubuntu over the years.
In my experience Linux is better at printing than windows. Especially debian based distros.
However you can just Google your printer and see if there are issues.
Edit: can’t read. I don’t know if there will be any change on printing since mint really just removes snap and Ubuntu stuff and adds flatpak and a few smaller details.
It was weird. Ubuntu 18.04 LTS printed perfectly. First try, every time. Barring printer issues not related to the OS anyway. Then, 20.04 dropped, and I couldn’t print anything. For two years, I had to move files to the Mac on the front desk to print at work because it refused to print anything. Same printer. I tried a few fixes people had posted, but none worked for me, and most fixes were for HP printers and mine is an Epson, which no one reported any problems with.
Now, with 22.04, I get intermittent printing. It works more often than not, but I’d estimate my print jobs get randomly canceled about 30% of the time. Which is annoying, but not deal-breaking since I usually just push it through again, and it works. To be fair, it might be because of wireless printing, but I doubt it since like I said, 18.04 worked flawlessly with the exact same setup. I might just try out Mint sometime and see if it makes a difference.
@Underwaterbob @Johanno Have you considered using a Raspberry Pi as a printer server? It might not be ideal, but - if it (the Pi) is physically connected to your printer - I wonder if it could negate the 30% failure rate?
That sounds like a lot of trouble and potential trouble for people who use the printer who don’t have the trouble I do. I can live with the failure rate. It happens quickly, and I can just print again. If Mint fixes it, that’s great!
You can try. I think nobody understands printer
Out of the mainstream distros what might end up getting bought by Google or even Microsoft, Ubuntu seems to me like the most likely candidate.
I mean, RedHat was once the even more likely candidate, but
RedHat is unapologetically the Enterprise Linux so they’re very close to Windows Server in that way.
I find Redhat annoying with how they lock down access to KB articles unless you have a subscription and certain "proprietary " things they do but I managed over 500 RHEL 7 and 8 servers at my previous job and I will say that their support is excellent, and RHEL is rock solid. Satellite server on the other hand, that thing is a steaming pile of garbage…
You can create a free developer account. They don’t really check you are a developer either.
Yeah Satellite was the worst thing about managing RHEL but it’s still leagues better than similar products for Windows. We basically just used Sat for licensing and as a local repo so it wasn’t too bad for that. We started using Ansible more just as I left my sysadmin career. Lots of rhel with rac and jboss.
Snaps:
On server = good
On PC = bad
Hell no. I can’t have my server updating itself without explicit approval, randomly breaking shit at any hour of the day.
Snap is basically Dockers right?
I hated it and it made me switch to debian, I don’t see the point to install all dependencies for each apps, I guess they don’t want to deal with package dependencies anymore, so let’s install the same version of python 10 times
It’s supposedly containerisation, but not really docker. After all, docker itself merely presents the OS’s underlying feature in a somewhat more accessible way (keyword: somewhat).
Snap is more like a big ecosystem around that idea that breaks everything that should work in that context, is a security nightmare and is sold as “work anywhere” but really only work in one place, which developers could have targeted in the beginning without having to rely on Snap to begin with.
I would actually benefit from beig able to keeps different versions of dependencies rn. Got a deprecated software wich forces me to exclude a package from my updates.
Snaps just don’t really work very well. When I have had problems in the past and gone looking for answers, what I consistently find is that the problem is fixed by installing the non-snap version of . I love containers but if I am going to use them I want to have control over how they are configured and that they have access to.
Or at least if I don’t control them I just want them to work, and they never do. I would use them if they weren’t consistently shit.
You don’t have to be a beginner to love Mint. I am very happy that they are putting more energy into the Debian edition. I’ve tried lots of other distros over the years, and I am just comfortable in Mint.
Linux Mint has a Debian edition available, I’m curious about that one.
It is a long term release based on Debian so that if Canonical goes down someday and Ubuntu falls, they will have a fallback base distro to remain on.
What are snaps and telemetry?
Snaps are a package format that handle dependencies differently. People don’t like them because of increased startup time.
Telemetry is when software sends analytics back to the parent company. Ubuntu does very basic telemetry, but people like to compare it to Windows
Ubuntu asks you if you’re fine with sending usage statistics to canonical and if you say ‘no’, the distro won’t send anything and never ask you again*
I keep hearing people complain about snaps but I don’t know the good or bad about them
Worse thing about snaps is that the server that provides them is propietary and owned by canonical.
Open source people tend not to like when things are not open source.
Other than that they are like flakpacks but blessed by canonical. Sometimes they are more curated or there’s more official releases on snaps that flakpacks.
Both are a way to deliver software without falling in dependency hell and kind of isolated and more secure(?).
Also is a way to wait 10-15 seconds to launch a simple app so there’s that.
The only snap I’ve had troubles with is vscode. Other tnsn that’s it’s been like using an apt app
Good - Snaps are more advanced flat packs
Bad - Made by the company that makes Ubuntu
Still using Mint, see no reason to change
Best distro imo right now for desktop. Fedora a close second.
Others like Arch are great too but more for enthusiasts.
What makes Fedora good?
I’ve been using Debian on servers for maybe 20 years now, so I’m very experienced with Debian on servers, but I’ve never really used the Fedora/RedHat/CentOS side of things.
The last time I used a Linux desktop was Ubuntu back in 2006 or so, back when it was still a new up-and-coming distro and they’d send you a free CD (very useful since I was using dialup at the time).
I’m thinking about which distros I should try since I want to switch from Windows. I’ve heard Mint and Pop OS are good? I might try Debian too. I used to love tweaking the OS back in my teenage years, but now I’m in my 30s and don’t have time to fix random breakages… I just want something stable that works well. (that’s why I was considering Debian)
Debian remains the king of “something stable that works well”. And with release of Debian 12 that brought a lot of quality-of-life improvements, easier non-free package managing etc, many users go for it on their desktops. So I suggest you do too.
Fedora runs at a twice annual release model and includes kernel and firmware updates within those releases whereas Ubuntu matches a kernel with a release.
Their packages, to me, feel much higher quality in terms of reliability and reaction time to reported bugs. They also test and guarantee updates for packages in their repos. I ran my college laptop through 15 system upgrades without any issues, nothing has been that reliable for me.
I enjoyed using Ubuntu for several years and hadn’t considered Fedora until they were the first to default to Wayland (f21) and never switched again.
You can do anything on any distro, so you end up just shopping for your fav package manager and default repo and staying there. I encourage you to play with all of them with a separated /home partition or so it’s easy to shop.
Thanks for the details!
I ran my college laptop through 15 system upgrades without any issues, nothing has been that reliable for me.
I’ve got a VPS running Debian Bookworm (12.0, latest version at the moment) that I haven’t reformatted since Etch (4.0, 2007). I’ve just done an in-place upgrade every time a new version is out.
That’s not a GUI setup though, so probably more stable when updating…
I use Fedora Plasma. It’s a spin on KDE. I really like it. Fedora is what i learned Linux on originally and it’s nice to go back.
edit: rm useless comment part.
Fedora tends to include a lot of the latest tech in a stable working configuration, stuff like Wayland and GNOME in the past and more. I like that I can get that while still enjoying a nice curated set of package repositories and without relying on something like the AUR for most packages. I’m happy to let others do the testing on the absolute bleeding edge and take the risks while I get to enjoy the fruits of that with a lot less pain with Fedora.
Thanks for the info!
Fedora is moving a bit faster than Debian(but it’s pretty unstable), the main selling point is in my opinion dnf/rpm, but on a server a rhel clone would be a better choice. Pop OS and especially Mint are great distros, Debian is great but very outdated, I would try them live and then decide
deleted by creator
deleted by creator
Manjaro KDE (default) makes Arch a wonderful starting point. Beautiful (gold standard of KDE implementation), truly blazing fast (thanks, Arch), incredibly Windows-like, and unlike Arch itself, completely plug-and-play.
Their update withholding schedule, while causing anger among some Arch enthusiasts, is what makes the system super stable and completely effortless to maintain, while remaining close to the bleeding edge.
The only thing newbies should be taught is that AUR should be used with caution due to potential (rare) dependency version conflicts; luckily, Manjaro repos have just about everything you can think of and AUR is almost entirely unnecessary.
Newbies should be taught to review what they install beforehand on the AUR which almost anyone can contribute to with minimal barriers. Most users treat it like any other package repository but its not the same thing and it’s definitely more risky then a curated repository.
Sure! I just don’t expect people who just came from Windows/MacOS to get into that. I’m talking “just works” here. Later on, they’ll be able to develop that understanding too, but to each its time.