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 like them for convenience, I don’t like them for customability, possibly just because I don’t know enough about them.
Flatpak and Snap definitely make installation more simple. The packages come with their own dependencies so you have way less issues with conflicting dependencies. I like them when they are officially supported by the distribution or developer, but I prefer the official installations over supporting a random person making a package (not sure if this is a thing with Flatpak, but with Snaps that was definitely a thing).
Some software really benefits from not begin inside flatpak though, I had to switch back to the deb version of Visual Studio Code as the integrated console didn’t have access to some software outside the package and was also logging weird errors.
I think that is what is pretty cool about them, that you can have both versions with no problems. Also, of course if the flatpak is giving me problems, I just uninstall it and use the package manager or something else.
I don’t like flatpak or snap or any of them. System libraries exist for good reason, just because your computer is stupid fast and you have enough disk for the library of Congress a couple times over doesn’t mean you should run a veritable copy of your whole operating system for each program. IMO it’s lazy.
Sandboxing is a different thing though, if that’s the purpose then it’s doing it right.
I see your point, and I agree. No need to spend resources just because we have them.
Sandboxing is definitely a benefit, but alas as I am learning I have no control of it’s permissions, so that can potentially go wrong.
You can manage Flatpak permissions with Flatseal.
Great! I knew it was possible. That is one less argument against it.
Flatseal is super easy for anyone with a tech background to use. You can very quickly expand or reduce the access an app has to your system. Even below what the app comes with by default.
I do kinda wish the guis for installing flatpak apps were more forthcoming with the permissions, and possibly integrated some of the features of flatseal so you could modify the permission set before installing.
It does seem pretty intuitive.
Honestly I just sometimes want the app to see a file outside of Downloads.
I like them for the opposite reason. I’m still quite new to Linux, so I’m figuring out which software is best for me. I set up my server with Xubuntu and installed everything through Apt. I uninstalled a lot of software, but inevitably missed some things like libraries and config files.
Using Flatpak seems to keep track of everything, so uninstalling gets rid of everything that I would otherwise miss.
If it’s doing what it says on the tin, Flatpak is making my life much easier :)
Trying to purge orphan dependencies is absolutely annoying. Talk about wasting space!
Yeah, that’s why Arch is almost the only distro that keeps everything installed natively. All other distros either have a troublesome workaround or only support flatpaks.
Rolling release just keeps everyone on the same pace. Yes, they break sometimes, but on the long run it just works.
As a long time Arch user, it’s not perfect, but it is perfect for me.
I have a ton of flatpaks which means packages are shared between them, so no it’s not lazy or a copy of the whole system. It makes a ton of sense for stability.
Updates are diff’s so downloading and updating is fast. Not entire packages.
Making every package work with only a certain version of a dependency and hoping it is stable doesn’t make a lot of sense.
As long as they don’t cause conflicts. You know dependency hell is a thing right? The reason flatpaks were thought up in the first place? Right?
Touché
Developers shouldn’t be out of date, but yes.
That got so spicy so fast.
Besides that it’s only partially true (unless we speak Nix systems) That’s also not the point of it. It’s more about having runtime environment that an app was built against and tested with.
You’ve just moved the packaging problem from distributions to app developers.
The reason you have issues is historically app developers weren’t interested in packaging their application so distributions would figure it out.
If app developers want to package deb, rpm, etc… packages it would also solve the problem.
Sure. Except you gain universal compatibility for all distros that have flatpak and aren’t building all the different package formats. Makes it much more attractive for actual developers to package since it’s only done once.
There’s no right answer here, but there are definite benefits.
I’ve had many little issues since I moved to Linux years ago, most of which would never have been an issue if flatpaks were there at the time. My experience has been better with them.
Makes it much more attractive for actual developers to package since it’s only done once.
I maintain a few apps that are included into some distributions with no participation from my side apart from tagging what I consider releases in my git repo. How is doing something only once is more attractive as not doing it at all?
Because you can make sure it was done right. You don’t have to worry about bugs or other issues being the result of faulty packaging if you’re the one doing the packaging. Plus It makes reproducing bugs easier when everyone’s using the same package, and declaring the flatpak as the official package makes it much more likely that people will use the flatpak.
Containerised everything is the future of computing and I think we’ll look back on how we do things currently with horror!
But yes, I am slowly starting to use more contained desktop applications. Server-wise, everything I deploy is now in containers.
I am happy that it is becoming more common. The first time I learned about containerization was QubesOS, which is great, and I still may try it.
I’m running Ubuntu now and I’m in Snap hell.
It works well enough for some very basic apps, but for me personally, Snap has created far more problems than it has solved. With Firefox, for example, it makes it a lot harder to use some extensions, and FileBot is entirely useless without file system access (I mean, that’s the entire point of the program).
I’ve heard Flatpak is better but my experience is somewhat limited. It could hardly be worse, though…
I am sorry you are in digital hell.
No real solution but to change distros, but that is also a crappy thing to suggest.
I hope it gets better for you.
Each snap is mounted as its own filesystem, which is messy for several reasons (try making sense of the output of
lsblk
on your system). Flatpaks don’t do that, though they sandbox in other ways. There really isn’t a “Flatpak hell”, the worst that can happen is packages that depend on different versions of the same library taking up a lot of storage space, which is a problem with snaps too.I still prefer to rely on official repos but I do use a few Flatpaks here and there. But one of the main reasons why I don’t run Ubuntu is because of Canonical’s aggressive pushing of snaps.
Its much better. Im moving off ubuntu to get away from snaps
For sure. Just like the fediverse, the more traction it gets, the better the experience becomes.
This is exactly what flatpaks were meant to do. Simplify the program deployment across all distros
It certainly has simplified things for me! To get anything so up to date, I would need to use something like Arch or the AUR, which is fine but I find unappealing (using Arch).
AUR is also insecure. I’d rather use a Flatpak from a trustworthy source.
I have been burned by the AUR so many times. It is not the perfect endless repository people advertise it to be.
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 think I just need to follow the guides more closely. I must have missed something.
If you switch everything you can to flatpaks and use distrobox for other apps you’re pretty close (better than toolbox and recommend layering it if you do switch to Silverblue).
Anything can be layered onto Silverblue if it can’t be installed another way. I’ve found it works well.
Same. Better stability, frequent updates, no building from aur, and permission management with flat seal are great.
If you use mostly flatpaks they share packages which means they don’t take nearly as much space overall as single packages do.
Updates with only downloading diff’s is fast and works well.
I also like them just for the sake of tidiness. Some apps like Steam tend to make a big mess of dependencies all over the place, so it’s nice to have that all contained in one place. It does take up more space but I have a reasonably big hard drive so it’s kind of negligible for me.
When using Fedora Silverblue, there is no other option, which I do!
Same. But I started using flatpaks for everything I could prior to moving so it was easy.
But there are other options with Silverblue.
It’s the preferred option for gui programs.
That doesn’t mean it is the only option.
Are there any other distros that are flatpak-only?
OpenSUSE Aeon (MicroOS Desktop)
Thanks
That is actually awesome. It sound like the Fedora aliens (?) but probably more reliable. Cool. Adding VanillaOS that to the list potential new OS that makes computing easy and fun.
What about the packages that are not available in flatpak? I assume there must be some packages that are only available in certain corners of the internet?
Yeah, that’s what I mean. You can use flatpak (or snap if you swing that way) but you can also install applications via containers. They’re still not installed on the OS-- even “native” applications get installed via the container. So if the application you want is maintained for arch in aur, you can add the --aur tag to the apx command and it will install that version instead of the default, which is ubuntu. This also works for fedora applications.
Edit: More info here: https://handbook.vanillaos.org/2023/01/11/install-and-manage-applications.html
That sounds cool. Thanks for the recommendation.
Doesn’t that result in a lot of wasted space from duplicated dependencies? Don’t get me wrong, this looks great on paper, which is why I desperately need to find fault with it before I start distrohopping again.
Flatpaks aren’t the only option in Silverblue: you can also layer packages using ‘rpm-ostree’ (requires a reboot though), and you can also use toolbx (or even better, distrobox) to create an easy-to-use container that you can do anything with. With distrobox you can install an app inside of a fedora/ubuntu/arch/other container, and then use a simple terminal command to expose that app to your host system as if it was installed natively.
I’m on Silverblue and I have mostly flatpaks plus a handful of layered packages as my base system. Then I have a couple of distrobox ubuntu containers for software development (lots of libraries and build tools), music production (with Yabridge and Wine). Because the base system is immutable I’ve never had a problem that prevented my computer from booting, and if I ever do, it’s extremely easy to roll back to before the last update. I’ve had a couple of issues working with containers in the past, but not big ones, and much of that comes down to my own user error.
I definitely recommend Silverblue for anyone who wants a rock solid, practically unbreakable Linux system.
I use flatpaks mostly. Flatpak dependencies (runtimes) are stored separately from the host system so and don’t bloat my system with unwanted libraries and binaries. App data and configs are stored separately and better organized. Everything runs in sanboxes. I use overrides extensively. All these are very convenient for me.
Ah, so it is possible to customize the parameters of flatpaks set by the developer/packager? That could make it a lot more appealing.
I you are asking about permissions so yes. I often limit access filesystem paths, dbus proxy, devices and network.
That is a good deal. I was briefly under the impression that those were not accessible, but that would be totally against the principles of everything Linux is about. So permissions set by the developer are just their biased defaults, nothing permanent.
Nope. I’ve been running Debian for the past six years after I got tired of messing with arch. I’m over my shiny new thing syndrome and am happy with old but stable software. I’ve tried some flatpaks but the only two that I use are Spotify and signal. They take a lot of space and updating is slow.
I agree that stability is important, perhaps paramount, in a computing system. Still, some software like Cura, improve with every release, and it is worth upgrading for every new feature.
Anyways, I have never been concerned with space. On the whole programs don’t take up that much space compared to everything else I would put on my system like games. Also, I am the kind of person who wants all the software they would ever use installed on their system. I want my computer to be useful even when the internet goes out.
If you’re playing games, then latest software in terms of kernel and libraries are important. There’s a reason why valve switched to arch as a base for steamos. For my use case, I do a lot of coding in C using emacs so thing don’t really change that much. To each their own, that’s the beauty of Linux!
Thank you for saying this! The negativity here has been jarring. I understand preferences, but no reason to be mean about them.
I wanted to stay with Arch awhile back but I kept messing up the install of Nvidia drivers in like every distro, so I just have a lot of apprehension. Maybe it is better now. Still, I am in a good place distro wise.
Emacs the portable lisp machine that can do virtually everything. That must be so fun.
I try to always use flatpak because I can install/remove software is a simpler way without leaving dependencies installed on my system forever.
Obviously for critical stuff I use the native version
I feel like the distinction is pretty automatic. I don’t know what critical stuff you can download from flatpaks.
I guess OBS for steaming?
I had fedora installed the last few years, and was digging flatpak… until I wasn’t. One day I ran out of disk space - 230 Gb of flatpak dependencies. I run a pretty slim system, so what the actual heck? Did some research, learned how to flush cached and redundant packages, shrunk my flatpak deps to… 150 Gb
I’ve since been trying Endeavor
I think fedora fixed this recently
That is unreal. I had no idea it can get that bad. Makes no sense, honestly.
Weird. That is unfortunate, and I hope it was just an ugly bug that unfortunately effected you.
I prefered AppImages, but now that I’m on Nix, I’ve gone back to native. Native packages work well in the NixOS ecosystem.
What’s good about AppImages? Imo they’re the worst packaging format; you can’t install and upgrade them from the command line like with native packages or Flatpaks, there’s not a repository-like centralized place for them, they get messy quickly since there’s not really an “official” default installation path so it’s up to you to keep them organized, they don’t integrate with system themes very well and you need a separate program (AppImage Launcher) to even get them to show up as an installed program or even pin them to your taskbar.
You have outdated information. There are no longer any tradeoffs to AppImages:
- Yes there is no “official” default installation path, but like how XDG_DATA_PATH isn’t technically a standard but practically it is, the de-facto standard is ~/Applications now, and most AppImage-based tools respect that.
- They integrate fine with the system. Better than Flatpack and Snap, actually. I’ve had lots of issues with flatpaks not respecting themes, but never AppImages. Not sure where you got that from.
- I solved the other problem with AppImages with a package manager I wrote. Centralized location pointing to AppImage urls, and it downloads and keeps them updated. And no, you don’t need to write your own, there are multiple AppImage package managers out there.
On the flip side, there’s no weird extra locations like how flatpak installs apps, you know exactly where the program is in case you want to launch it manually, you can mix apps available in your package manager with ones you download directly seamlessly, no dependency hell or version problems as AppImages are self contained (even multiple versions at the same time), etc, etc, etc all the benefits people spout about AppImages.
AppImages imo are the superior cross-platform package format as there are no tradeoffs and no downsides, meanwhile:
- Snaps are slow and proprietary
- Flatpaks suck to create and maintainers select all on sanboxing, so it’s a complicated mess for no reason, and they also have bad theming that never works half the time.
For sure certain package managers are better than others, and NIX seems to be in a class of its own.
I don’t know how much time I am willing to invest in NIX, or Guix for that scheme power, but I can do myself a favor experiment with a few VMs.
The way it feels is like getting the benefits of a source-based distro like Gentoo without the tradeoffs of things like compile times.
I like this take. I am reading up on how flatpak works, and what seems to be most important is including the dependencies needed to run an application, regardless of what the system has, which is great.
I still need to try out Gentoo one day… but it seems like Nixos is the new Gentoo?
Idk about “new Gentoo,” as they’re going for different things, for sure, but a lot of the reasons people like Gentoo seem to be true for Nix. Definitely still give Gentoo a try some day.
I used it for a few months and only moved on bc compiling was taking too long and was annoying me :)
The glory and the strife.
No
Fair
😂