I am currently using Linux Mint (after a long stint of using MX Linux) after learning it handles Nvidia graphics cards flawlessly, which I am grateful for. Whatever grief I have given Ubuntu in the past, I take it back because when they make something work, it is solid.
Anyways, like most distros these days, Flatpaks show up alongside native packages in the package manager / app store. I used to have a bias towards getting the natively packed version, but these days, I am choosing Flatpaks, precisely because I know they will be the latest version.
This includes Blender, Cura, Prusaslicer, and just now QBittorrent. I know this is probably dumb, but I choose the version based on which has the nicer icon.
I’m glad to see you’ve gotten a ton of feedback here, and I just wanted to add another comment in support of flatpaks and image-based computing. I’ve been using Linux extensively for about 15 years now, mostly Arch and Debian Sid. I’ve been a distro packager, and I’ve compiled plenty of my own apps over the years.
This past year I took Fedora Silverblue for a spin after following the project for quite some time, and I am convinced that the image-based system approach, coupled with containerized and sandboxed userspace applications, is the future of Linux for most users. It makes so much sense from nearly all perspectives; whether security, reliability, or flexibility.
Integral parts of the system are mounted read-only by default. Simple commands can rollback unwanted changes, upgrade to a new distro release, or even sideload an entirely different OS. System updates are automated, as are flatpak updates, and there is little-to-no risk to stability due to the very nature of the essentials-only system images. And if something catastrophic did happen, you’re just a reboot away from rolling it back.
Consider for a moment the collective energy and time that distro package maintainers must undertake on a weekly basis. Much of it simply repeated by each distro, building the same applications over and over again. Flatpaks are built once and deployed everywhere. Think of the collective potential that could be directed elsewhere.
Couple this with containers and the choice of distro matters even less. Arch, Debian, Ubuntu and Fedora are just a keystroke away. Yes, you can run containers on any distro of course, but you don’t gain any of the other ostree benefits mentioned above.
I have since moved all of my workstations to Silverblue and I don’t see myself ever going back to a traditional system again. If anything, I may start automating my own image deployments, similar to Universal Blue.
Yes, flatpak as a platform still needs some work, and so does ostree, but both are evolving quickly and will only get better with time.
To others who complain about needing Flatseal…in my opinion, this is a feature to be embraced, not loathed. Sane defaults are rarely sane for everyone, and Flatseal exists to give you complete control over what an app can or cannot see and do.
Absolutely not, and this article goes into quite a few reasons why:
https://blog.brixit.nl/developers-are-lazy-thus-flatpak/
Sadly there’s reality. The reality is to get away from the evil distributions the Flatpak creators have made… another distribution. It is not a particularly good distribution, it doesn’t have a decent package manager. It doesn’t have a system that makes it easy to do packaging. The developer interface is painfully shoehorned into Github workflows and it adds all the downsides of containerisation.
While the developers like to pretend real hard that Flatpak is not a distribution, it’s still suspiciously close to one. It lacks a kernel and a few services and it lacks the standard Linux base directory specification but it’s still a distribution you need to target. Instead of providing seperate packages with a package manager it provides a runtime that comes with a bunch of dependencies.
If you need a dependency that’s not in the runtime there’s no package manager to pull in that dependency. The solution is to also package the dependencies you need yourself and let the flatpak tooling build this into the flatpak of your application. So now instead of being the developer for your application you’re also the maintainer of all the dependencies in this semi-distribution you’re shipping under the disguise of an application. And one thing is for sure, I don’t trust application developers to maintain dependencies.
Even if there weren’t so many holes in the sandbox. This does not stop applications from doing more evil things that are not directly related to filesystem and daemon access. You want analytics on your users? Just requirest the internet permission and send off all the tracking data you want.
Developers are not supposed to be the ones packaging software so it’s not hard at all. It’s not your task to get your software in all the distributions, if your software is useful to people it tends to get pulled in.
Another issue is with end users of some of my Flatpaks. Flatpak does not deal well with software that communicates with actual hardware. A bunch of my software uses libusb to communicate with sepecific devices as a replacement for some Windows applications and Android apps I would otherwise need. The issue end users will run in to is that they first need to install the udev rules in their distribution to make sure Flatpak can access those USB devices. For the distribution packaged version of my software it Just Works™
I accept that I’m in the minority on these things, but I value simplicity really highly, and I mean “simple” as a very specific concept that’s different from “easy”. It can be harder to resolve library dependencies on a system where everything is installed using the native package manager and common file systems, but nothing is as “simple” as ELF binaries linking to .so files. Nested directories branching off of
/
is “simpler” than containers.Do I have any practical reason for preferring things this way? Not really. There are some ancillary benefits that come from the fact that I’m old and I already know how to do more or less anything I need to do on a Unix system, and if you tell me I need to use flatseal or whatever, I’d rather just use users and groups and tools that have been fine for me for 25 years. But that’s not really why I like things this way. I have no issue with embracing change when it otherwise appeals to me --I happily try new languages and tools and technology stacks all the time. What it really is is that it appeals to the part of my brain that just wants to have a nice orderly universe that fits into a smaller set of conceptual boxes. I have a conceptual box for how my OS runs software, and filling that box with lots of other smaller little different boxes for flatpack and pyenv and whatever feels worse to me.
If they solved practical problems that I needed help solving, that would be fine. I have no problem adopting something new that improves my life and then complaining about all the ways I wish they’d done it better. But this just isn’t really a problem I have ever really needed much help with. I’ve used many Unix systems and Linux distributions as my full-time daily use systems since about 1998, and I’ve never really had to spend much effort on dependency resolution. I’ve never been hacked because I gave some software permissions it wouldn’t have had in a sandbox. I don’t think those problems aren’t real, and if solving them for other people is a positive, then go nuts. I’m just saying that for me, they’re not upsides I really want to pay anything for, and the complexity costs are higher than whatever that threshold is for me.
Your knowledge of Unix systems is incredibly powerful, and I highly respect that. You are in control of your system, which is the ultimate goal of personal computing. It is even more powerful that your mental models are reflected in your system. That is super cool, I hope to get their some day.
I am also very happy you enjoy trying out new technologies, and don’t have the grumpy jadedness of just using what you always use.
For me I thoroughly enjoy learning new skills that unlocks the power of all my many computers, and put them to use. Computing should be fun and empowering, and too often people deprive themselves of fun.
deleted by creator
i avoided flatpacks before.
but now that i tried out silverblue and had to rely heavily on them,
i have to admit that flatpacks are not nearly as bad as i thought.the only issues i encountered are with steam (might not start propperly on first launch)
and with ides(terminal starts inside the sandbox)other than that it works great.
recently rebased from fedora to debian, and reinstalling apps through flathub was ridiculously easy because all the settings and data were preserved in /home. also flatpaks incorporate newer mesa than what comes with debian stable, so it’s an easy way to stick with a stable distro but also be up-to-date in userspace.
My experience with Flatpaks has been so stable and hassle-free that it motivated me to switch to Fedora Silverblue.
Hell yes! Feeling futuristic.
deleted by creator
I cannot count the number of times I installed seemingly well documented software only to have it kill my system. Snaps, the very thing that would prevent that kind of misery, has inexcusable behavior.
Yeah, Flatpaks are great. Although I will say I am pretty agnostic, I don’t need my computer to follow some kind of paradigm for anything other than the comfort of organization. In fact just now I installed software through a PPA, because that is the official way for my system at the moment. Not the greatest, I think I could have chosen a different way in a drop down menu, but it detected Ubuntu (Mint), so whatever.
Yes, but only for apps that which I want to be on the very latest versions. One might ask why I don’t use a rolling release distro, that’s because I prefer a solid LTS base.
deleted by creator
That is absolutely the best usecase. There are only a handful of apps I need to be the latest version.
I am mostly using native packages.
@DidacticDumbass
You can set Debian to prefer installing from stable unless you explicitly request otherwise. That works on a per-package basis.Presumably you could do the same with any apt-based distro, but I’ve not tried it.
@agelordI usually use the terminal, so that is something I need to make sure of. Otherwise, using the Software Store I can explicitly choose which version to use.
@DidacticDumbass
This runs you through the setup: https://unix.stackexchange.com/questions/8049/how-to-install-some-packages-from-unstable-debian-on-a-computer-running-stabl#8051Once it’s in place, I’ve had no issues.
Neat. I was wondering how to do that.
I use Flatpaks for everything I can. I like how Flatpak keeps apps in a container isolated from my system. Also, Flatpaks contains every lib in every version I need for my installed apps, which means It does not rely on my system libs, and I like It, cause my system libs is to make my system works only.
Flatpaks are just the future of packaging
Great explanation and rationale for using Flatpaks! I hope others with questions see this.
I understand how people may be annoyed by the redundancy of every app packaging their own lib, but I swear those are measured in kilobytes, and people tend to be so obsessively minimalist it is a non-issue. Then again, minimalist are probably compiling their software.
I disagree. The other day I wanted to install some audio app that came in flatpak install format (I’ll check and add the name later). The app was less than 30MB in size, but the installation included 300MB of a previous version of org.freedesktop!
I think that is one time download of a library so the app can run. Also, any other app that needs it.
It seems to me that the biggest complaint people have with flatpaks are the space it takes.
I wonder if the blow up in GBs was an early buggy behavior?
Quite the opposite, after fiddling with it for six months I fully uninstalled flatpak and deleted the directory to get away from the fact it kept downloading copies of nvidia drivers when I had moved to an AMD a year ago, and the drivers were locked from being manually removed even after I uninstalled all flatpak packages.
I’m an Arch user, trust me when I say I read the documentation.
After wasting hours on it I nuked it.
Damn, alright. I am starting to get the hate for it. I think I am blinded by the sheer convenience of it. Also, I am probably sleeping on more up to date repositories that gets me what I want without using flatpaks.
Linux Mint has been babying me though. I love the comfort, and cinnamon is everything I need in a DE. I will need to see what I can do.
No, because I don’t have a very powerful computer
Even if I did, I would still prefer to have native applications because it would be more permissive
I am totally ignorant, do flatpaks use a lot more processing?
There might be an increase in startup time and RAM usage because it loads it’s own dependencies instead of using system libraries, but the difference is probably very little.
I imagine that is the case. I also feel that is a trifle. Unless one is constantly closing and opening an application they use often, the extra seconds starting should not break a workflow.
I think it’s probably a couple ms instead of whole seconds but I haven’t tested it.
Sure. I personally have not noticed a difference. Then again, I recently got a new computer, and all my other computers are over a decade old, so everything feels luxurious.
They can take longer to start up, which can suck on older hardware. It’s not as bad as it used to be though. Once they’re running there shouldn’t really be any difference. The main drawback is actually that Flatpaks use more storage space.
I am glad that the startup times have improved, that bodes well for future startup times. Using up more storage really is what makes it suck for everyone. I thought that it was more efficient, since I see a lot of .platform, and I assumed those are libraries shared across flatpak apps that use those dependencies.
I am almost sure AppImage has the same problem? I don’t know, people do rated that better though.
Storage space mostly isn’t as bad as it is with AppImages. Each AppImage stores all the libraries it needs, even if they are shared with another one. They can’t even know if they have shared libraries. A single AppImage will probably actually use less storage than a single Flatpak if you only have one, just because the AppImage only uses exactly the libraries it needs, while Flatpaks use shared sets of them. That being said, Flatpaks generally get less bad the more of them you use, because of the shared libraries. They’re still a whole extra set of libraries on top of your system ones though, plus they put out a new set every year. Apps that are still under active development generally get updated to the latest version, but older apps that are basically finished often require older libraries, so that’s more space used. Overall for a one off program when you’re not using universal packaging systems regularly AppImages are mostly better, but if you’re going to be using them regularly Flatpak quickly becomes far better. It still uses more storage space than just using native apps though.
Another difference between Flatpak and AppImage is that it can be kind of a pain to theme Flatpaks to match the rest of your system, and I don’t know of any good way to do it with qt6 apps yet, but it’s just straight up impossible to theme AppImages. They can technically have themes built into them, but unless you’re using Adwaita, or maybe Breeze if you’re lucky, they just don’t, and having to rebuild your own custom AppImage completely defeats the main benefit of using AppImages.
I use system packages for everything unless I need a newer version of a specific package for some reason.
Most software does not change that significantly, so there is no loss in holding back, and usually just the benefits of not breaking your workflow, or your system.
For a long time now, if a flatpack is available and maintained, I use it.
I briefly considered getting into Fedora Silverblue, and I still may for this very purpose.
I’m getting into OpenSUSE Aeon (MicroOS desktop) and it’s been really great with Flatpaks and Distrobox. You should consider that one too :)
Sounds dope. I love OpenSuse. I almost made it my main OS, but got kicked in the ass installing graphics drivers and the fixes were many and too annoying.
MicroOS. Never head of that. I am excited now.
I had a reasonably good time getting NVIDIA drivers installed. I found the instructions here. I installed the newest drivers using the following command + a reboot.
transactional-update -i pkg in nvidia-driver-G06-kmp-default nvidia-video-G06 nvidia-gl-G06 nvidia-compute-G06 nvidia-utils-G06 nvidia-compute-utils-G06
The OpenSUSE guide doesn’t include compute-utils, which is needed if you want to run nvidia-smi. I haven’t tried installing a full CUDA SDK, so ymmv there.
I have been for awhile. It also all exists in my home directory, so when I format my root and throw a different OS on, all my flatpaks are ready to go without installing any native packages. It’s just a more consistent experience using flatpaks.
Whoa. I had not considered backing Home that way! That is slick.
Honestly, reinstalling or moving to a new distro is such a bear precisely due to the time setting up my environment and all the software. I KNOW I can script all this, or at least have a list of packages I use, but it does not really work when different package managers use different naming schemes.
Yeah as long as you at least copy your home user folder, then you’re golden. I plan for my root to be wiped at any given time, so my important stuff lives in my home. That’s why it’s super nice with flatpaks! I believe if you install as user and system flatpaks, I think they both install in home? I’d stick to installing as a user for flatpaks if you can, it’s the same end result anyways and I’ve never had an issue.
This has officially won me over. I am not a minimalist, nor do I have some principled view of package management. I care about computing, and I am all for anything that makes it easier. I am the kind of person who wants all the software I will ever think to use already installed. I see my computer like a library. It is a castle, not a tiny home. I don’t give a shit about “wasted space.” I can always buy more.
Containerization is awesome, and I will embrace it.
Just curious, what distro are you on right now?
I’m using Fedora, but thinking of swapping to Silverblue. If you’re going full on containerization, I’d try Silverblue as an immutable system + containerized apps is definitely the future. Fedora/Silverblue is developed by Red Hat, who also develops flatpaks, so they all have some serious man power. But flatpaks are system agnostic so you can use whatever. I’d just recommend looking for immutable distros to future proof your system. Which flatpaks also has some of that built in too. I think the exact same way as you :)
Okay, I was between this and OpenSuse MicroOS. I guess it makes sense to use the distro by the company that makes the technology I want.
I was looking at trying MicroOS but I got the feeling it was for servers, but I haven’t tried it so I’m guessing lol. I do know it’s immutable though.
I will trial both I guess. See which I like more.
I am leaning towards Fedora just to have Pipewire and Walyand standard.
I am comfortable with any desktop enviroment as long as it is not KDE. I would rather use a mouseless tiling WM than that.