Anyone else starting to favor Flatpak over native packages?

DidacticDumbass@lemmy.one to Linux@lemmy.ml – 205 points –

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.

263

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 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.

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.

You know you can have many versions of a library on your system at once, right?

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?

Nice out of date dependencies with those lovely security vulnerabilities!

Touché

Developers shouldn’t be out of date, but yes.

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.

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 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!

For a long time now, if a flatpack is available and maintained, I use it.

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.

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 before you switch 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.

Whoa! Distrobox looks cool! Did this come out on Android first? Seems like something I used to have fun with.

Damn, there are so many cool software I have never even seen in passing. I mean, I guess anything is possible. Hah.

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.

Mint is an excellent starting point, and there's good reasons to use flatpaks. If it works for you use it until it doesn't.

I have been using Linux exclusively for maybe 8 years now? I just never dived to deeply into power user territory. I can get around okay, and am comfortable with the terminal and all that, I was just never interested in spending too much time trying to customize everything.

For a period I was obsessed with alternative operating systems. I read that Haiku is basically ready for evey day use. I wonder how Redox is coming along...

Anyways, I hope flatpaks keep working.

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.

I too have been using native packages for 25 years and I wouldn't say it have been "fine".

I've had to deal with outdated packages, where to have the latest version of a software you had to compile from source.

I had to deal with 3rd party repositories that broke my system.

I had to deal with conflicting versions of a library.

I had to deal with the migration from libc5 to glibc and God that was horrible.

So yes containers might be a little more complex in its implementation, but it means I can install apps from third parties without touching my system and I love that. My OS stays clean, and my apps don't mess with it.

It's not that I've never had any problems. It's more that those are infrequent one-time problems, and if something happens once every two years that takes me 30 minutes to solve, I'm willing to do that if it makes the day-to-day use of my system smoother. Flatpak feels like I'm rubbing just a little bit of sandpaper across my face 20 times a day, and the promise is, "yeah, but look how you'll never have to solve this minor one-time things again", and that's just not a trade I want to make.

I like flatpak because it keeps everything more orderly. My OS fits into one box, and my userland applications all get their own little box. I don't have to worry about the choices I make for my OS dictating the options I have for applications. And I don't have to worry about installing an application polluting my OS with libraries that only it will ever use.

The same is true with containers like Docker. Sure, I could install web apps directly on the server, or make a VM for every service I wanted to spool up, but with Docker Config(or the many other ways to wrangle docker) I have a predictable input/output. I never have to worry about the requirements of one service conflicting with another. And the data and logs generated by the service rest in an exact place that I can ensure is uniform for all services, even if the developers do wacky things.

Taken to the extreme you get NixOS, which I really like the concept of, but can't bring myself around to learning, as I know it will take over my life.

/var/lib/flatpak/app/org.gnu.emacs/current/active/export/bin/org.gnu.emacs is not what I expect a Unix system to want me to type if I want to run Emacs. Nor is flatpak run org.gnu.emacs. These are tools built by someone whose mental model of running Unix software is "click the icon in the Gnome launcher". That's one aspect what I'm describing as not being "simple". I don't want my mental model of how to run Unix software to include "remember how you installed it and then also remember the arbitrary reverse-FQDN-ish string you need to use to tell flatpak to run it". If I'm honest, that alone is sufficient to signal it wasn't built for me. I could work around it for sure with shell aliases, but I could also just not use it, and that seems fine for me.

This. Having to open a console to run a flatpak in bspwm is annoying as all hell. PWA's are just as bad, I ended up writing a script I could run from dmenu:

#!/usr/bin/env bash

PWA_PATH=${HOME}/.local/share/applications

for app in $@
do
  DESKTOP=$(grep -i "Name=.*${app}" -lm 1 ${PWA_PATH}/*.desktop)
  if [ ! -z ${DESKTOP} ]
  then
    APPID=$(basename ${DESKTOP} | cut -d- -f2)
    /usr/bin/google-chrome --profile-directory=Default --app-id=${APPID} &
  fi
done

I agree that launching flatpaks outside of a GUI is stupidly verbose. I certainly would never use flatpak for cli tools, and I think that is a problem for it. I would love to see more tools bundled up that way, but flatpak is far from the solution. And Docker has the same or bigger problems.

And in a way, everything is a CLI tool on most normal systems. Evince or Acroread or whatever you prefer to read PDFs is not "a CLI tool", but if I want to use LaTeX to create a document, I want to be able to do something like

$ xelatex myfile.tex
$ evince myfile.pdf &

I don't want to have to build my document, bring up my app launcher, click on the Evince icon, hit Ctrl-O, navigate to my pdf file, and double click it.

That is a great point. I use the shortcut 'code .' to launch VSCode when I'm on the terminal a lot. Can't do that with flatpak without an alias. I don't live on the terminal though, so it is rarely an issue for me. It is a problem flatpak should solve though. Seems like they are focused on GUI apps and GUI launching.

ag to be honest I'm so frustrated by having to remember what package manager was used for installing which binary. I don't have time for this horse shit

9/10 desktop applications I use are flatpaks. Am on Arch and even when there's an AUR for a package I'd prefer to use Flatpak. Just so I can use Flatseal to control permissions access on my applications.

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?

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.

Thank you for writing all this! Innovation is absolutely necessary not just in Linux, but all computing. People are comparing this to Window installs, and honestly it is probably more similar to MacOS installs. Yet, the difference is that the packages are audited by a community, and are not proprietary wildcards that might bite you in unexpected ways. Flatpaks are an options, not a replacement.

Dealing with software that does not work first try is a loathsome experience. Many people here are wearing their gray colored classes, opinions influenced by decades of tinkering, and are forgetting about the curse of knowledge.

If we want more people to adopt linux, Flatpaks absolutely help.

Lastly, saying image-based reminds my a lot about Smalltalk, which is nice. I like the idea of having hot-swappable operating systems to switch between that have all the work isolated in that image. Great for experimentation, and perhaps security.

I will definitely be checking out Fedora Silverblue. Going to download and make a VM for that now.

I've been using NixOS with flatpaks and distrobox and have had pretty much the same experience. NixOS provides rock solid base system, services, and CLI tools that are easy to configure and flatpaks provide the rest of the desktop applications.

One neat feature of installing eveything through flatpak is that you can update applications individually without having to upgrade the whole system.

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.

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.
@agelord

I 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.

Debian stable + flatpaks.

I want to be on the latest Firefox and to have the latest LibreOffice and some other apps. I want the latest applications, but I don't want them come at the expense of having my system randomly lose its Wifi at the next boot or some other trash.

FreeBSD had this figured out 25 years ago. Separate the base from the user apps. When I was a teenager, I built -current ports on top of -stable FreeBSD and it was fine.

Now we have the equivalent option in Linux, and it comes from a centrally managed repository i.e. I'm not downloading tarballs and managing my own packages. I'm too old for that crap.

I want a stable OS, but I want the latest versions of applications (programs) without messing up anything. For me flatpak and snap meet that need, but I prefer flatpak.

It seem that whatever problems Flatpaks may have, due to sandboxing, is truly isolated. I think as a non-power user, I do not have strong opinions about any kind of technology, I just enjoy the magic of things working without effort on my part. I will dive deeper as my needs change, but my needs are kind of simple too.

Probably never. They're my third option after native packages and built-from-source packages/installs either manually or using the AUR. They're convenient and the only option I tolerate of those newer package styles (Flatpak/Snap/AppImage), but seemingly having to download a new 800+MB runtime for small 32MB applications is ridiculously wasteful and I wouldn't touch them if I didn't have at least a TB of storage.

That is a fair take. The universal package systems seem to disregard space outright, which is unfortunate.

100%. I just wrote a long post surmising this somewhere, but I'm switching my 5 year old Arch install to something like Debian Stable/Testing because I use almost entirely Flatpaks for my user applications (I would do 100% of them if every app I used had a Flatpak), and it's really just a much better idea to run bleeding edge on only the stuff you care about instead of an entire system.

I personally run Debian in Testing and I have not the latest version but I think it's still fine.

If you find it please link it. I would love to read it. I think I am happy with my setup, and Flatpaks make it possible.

Here. It's more of a longform stream of thought on why I'm doing the same sort of thing.

For sure. I think I rolling distros are great, and I may consider it in the future. Right now Linux Mint is amazingly solid for me, and has evaporated any interest for experimentation, because I have had literally 0 problems, and it magically takes care of my Nvidia card.

I hope you find the distro you are looking for!

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...

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.

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.

Its much better. Im moving off ubuntu to get away from snaps

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 personally still prefer native, but flatpak is my goto for whenever something isn't working or when the official repos are outdated.

The other day I tried to use Malt for blender but it wouldn't work on the native version because it was using the wrong version of python. The flatpak version works perfectly with Malt, but for some reason I don't feel like troubleshooting, the OptiX denoiser doesn't work.

Still though, flatpak is a welcome option and is way better than snap.

That is so strange. I think people are underestimating how important up-to-date packages are for certain kinds of workflows, and short of reinstalling everything onto a rolling distro, the only sane solution is something like Flatpak, or directly installing every new binary as it comes out, which can suck and does not guarantee having all dependencies.

It depends. Kind of prefer Flatpaks as they are always working as expected on any distro, but some of them are giving me just too much struggle.

For example, dealing with sandboxing, or especially VSS code app. Yes, there are instructions, but then I install Golang SDK via Flatpaks the hard way (using CLI) for Go development, then having a nightmare trying to setup everything in vss code. Then how tf should I access go binary within my host terminal?

On Arch Linux I just tend to install from official repos, while the rest of apps - from Flatpaks.

Personally I don't like the way they are sandboxed, bit as long as it works I am fine.

That seems to be the running theme, the defaults for the sandbox seem to be wrong for some people and there is no easy way to change them.

Also, I am sure I would like Arch, my problem is that I was using Manjaro, which is the distro I originally fell in love with and basically converted me to using it full time, but a long time ago. Now it sucks.

Anyways, that is the best, official Arch repos.

Simple example when I wanted to install the latest version of Okular, which came as flatpak. Owing to sandboxing it couldn't do the inverse search from a pdf, calling Emacs to open the tex file that generated the pdf. My workflow was broken. After spending half a day in forums trying to understand how to give more permissions to the flatpak, I finally ditched it and am using the older version from apt. Works seamlessly.

I use flatpak first for everything, but VSCode was one that I absolutely installed the old fashioned way. It just needs to much system integration and I couldn't figure out how to let it out of the sandbox enough to make it work reliably. But it is the exception.

Nope, don't like them. Nor snaps. I find the sandbox nature annoying and many developers don't actually seem to understand it correctly anyway meaning you have to use flatseal etc. Then having to deal with some apps writing config within the sandbox and some writing it outside the sandbox...

My order of preference is generally I pick the "official" supported version as opposed to any community maintained ones. Then within that:

  • Install via the language's package manager (cargo, npm, pipx, cabal etc.)
  • Appimage
  • Native package (.deb, .rpm etc.)
  • Plain binary
  • Build from source
  • Snap
  • Flatpak

Out of interest why do you favour snap over flatpak?

I've just had fewer issues with snaps. Honestly I don't care for either of them so the difference between them for me is pretty slim but I just find Flatpak to be particularly annoying, Snaps just haven't caused me any real issues other than polluting my device list with endless loop devices.

True. I have run into a lot of dumb issues with sandboxing, mostly in choosing a folder other than downloads for file interaction.

I have overlooked Appimage, and I will consider it. I am intrigued that you put it before native package. I had not considered using the package manager of the language it is built in, which honestly is probably the optimal way to install a package.

Alright, I have some reading to do. I love learning new ways to do things. I am glad I asked!

There is a bit more nuance to it I suppose - I like Appimages for "complicated" apps, i.e. big GUI apps like Inkscape where I prefer native packages for terminal tools. The nice thing about Appimages is that there just isn't much in the way of integration and therefore its really easy to just try something out with no risk of installing a bunch of extra dependencies and no way of breaking your system - I use Appimagelauncher for managing them but have been considering swapping to something like Appman/AM.

The other thing that sometimes puts me off of native packages is having to deal with excessive numbers of PPAs or other repos when they aren't in the main ones.

That is a great consideration that I have not looked into in awhile. It seems to be the ultimate third, or perhaps second, solution for getting software to just work. I will look into Appimagelauncher, and try out that version is native or flatpak fails me somehow.

Yeah, user submitted packages are such a risk sometimes.

I handle it by spinning up an lxd container to try new apps.. then they have the whole machine to do what they like, and if the install doesn't work or I hate the app, just delete the entire container.

lemmy was one of the harder ones to deal with because it needs docker.. I have a special profile that runs docker in a container for apps like that (I never run docker bare, it f..s around with the firewalling and breaks stuff).

For convenience, it's great. The sandboxing is good as well. Flatseal is a must have for me, though.

No, because the updates are in GBs and my internet is limited. I'd rather install nixos and spend time learning it than install flatpak apps.

Updating individual applications is a pain on NixOS. You'd either have to override the attributes of the package (which can get quite ugly and complicated and does not always work) or pull in a new commit of nixpkgs that has the version you want which requires the download of a ton of other dependencies that were compiled for that specific commit of nixpkgs.

Flatpaks solved this problem for me and helped reduce the download size every time I wanted to update something.

I am ignoring size, which as much as it doesn't matter for my computer setup, is still space that can be better spent on games and video.

Damn, I guess I need to learn Nixos.

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.

It was likely the build up of a few years' packages, updates, and so on, but it eventually came to a head and I had to wipe and load. Maybe it's better now, but I think I started that install around Fedora 34? So not too long ago

Weird. That is unfortunate, and I hope it was just an ugly bug that unfortunately effected you.

I still favor native packages, but I don't have a problem with Flatpaks. I'll use them when a program isn't available in the repo or there's a compelling reason to have a never version of an application. I'm on Debian Stable, so I'm obviously not obsessed with having the newest, shiniest version of everything.

I mean, not every shiny version is a mere gimmick. Cura just added improved tree supports, which are a great quality of life improvement.

I will not deny that having a robust stable system will always be better than having every package the newest version.

When using Fedora Silverblue, there is no other option, which I do!

Are there any other distros that are flatpak-only?

Check out VanillaOS. It's pretty neat.

Thanks

They don't hype it as much as (I think) they should on that webpage, but VanillaOS does this thing with it's package manager, Apx, where it allows you to install applications from various distros via containers, and run them all side-by-side seamlessly. It's neat.

I wonder how well it integrates with hardware. Arch with the pacman packages has been the only distro where I could get ROCm working reliably. I'd love to make a "ROCm container" and dump all that mess into it's own sandbox.

In fact, the thing I really want is more of a "Qubes but not for security tryhards" (aka I can actually use Wayland AND game on it) where everything gets it's own container mainly for organizational purposes, but something like this sounds like a fair compromise.

Could you do this with something like Distrobox?

Again - I have no idea how well it's hardware support is. I assume 3d accel and whatnot would be fine because it's widely used, but dunno if anyone tried running ROCm on it.

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

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.

Just let some bees loose on your system for a while and they'll sort that out.
Also depending on how good your CPU is btrfs compression would also save a fair bit. AFAIK shared libraries are pretty well compressible.

I'm sure it does to some degree, though I don't know if it's enough to matter on modern computers, and isn't that what flatpak does, too? (duplicating dependencies)

In any event, if you don't need an application from a specific distro there's no reason to create that container. The non-ubuntu ones get created when they're needed. (And I think the next version of VanillaOS will be debian-based, not ubuntu; in case that matters.)

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.

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.

Same. But I started using flatpaks for everything I could prior to moving so it was easy.

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.

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.

Yeah, having apps updated in the last year is enjoyable

Hahaha! I think developers seem to prefer it? My uses cases are 3D modelling and game engines like Blender, Cura, and Godot.

All those need to be the latest because often the updates are tremendous (as in great or awesome), making the software so much more functional and better to use.

Yeah, it also lets us ship working environments. At !2009scape@kbin.social we have been shipping our flatpak with an old environment because there was a regression in recent mesa versions that caused graphical issues on amd. We could simply deploy an update to resolve the issue for everyone instead of making everyone downgrade their system mesa..

That is a cool use case! I am learning so much about the benefits of Flatpak, not just an easy way to get software.

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.

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.

Yeah, interactions with software outside the sandbox can be annoying, but I am glad it is flexible enough to overcome those problems.

I was using Flatpak and Toolbx exclusively until I discovered Nix. It's much better than using those two.

People keep recommending it, I guess I will give it a try.

For a minute I was fascinated by GOBO Linux, and I really thought it would take off, but I think the developers must have moved on since there have been no updates. However, the 'recipes' seem to get actively updated, so maybe it is a stable enough system.

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.

That is what I thought, and I was confused about people complaining about the redundancy. Also, every new program I install manually seems to pull a crap-tonne of new dependencies, so nobody is saving space.

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 prefered AppImages, but now that I'm on Nix, I've gone back to native. Native packages work well in the NixOS ecosystem.

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 :)

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:

  1. 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.
  2. 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.
  3. 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.

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.

I didn’t like them before I used flatseal. Now I love them.

Definitely not me. I am on LiveUSB right now which makes my disk volume limited. And native packaging satisfies my needs (even when packages are old)

That is cool. I imagine it would be great to have an array of USBs with different distros for specialized uses.

For the most part, I don't even look at the version number when downloading packages. Most of the time it does not matter. Still, when I need something up to date, all I have to do is choose the flatpak version.

For me the perfect example is GNOME Builder (I use KDE Plasma) but this package has it all. No, you dont need to download any dependencies, the sandbox handles it all!

That's not all that different than a traditional package manager. You're downloading the dependencies either way. With Flatpak, they're bundled in. With a traditional package manager, it just fetches all the dependencies and shows you that they're being installed one-by-one. Either way, it's one command to install.

Fun use case! It feels like hell experimenting with different DEs because the installs mess with each other. If only they were isolated somehow...

In place of snap OF COURSE.

I can state without any doubt that i had problems with 80% of the programs coming from snap..

Are they related to PPAs in any way? It seems like anything Canonical does to improve package management ends up sucking.

Flatpaks are okay but they take too much space

Yeah, I mean, for me it is only a few choice GUI applications that I use flatpaks for.

Still, it is clearly not an optimal solution.

I haven't used any flatpacks, mostly because they don't seem to have a good solution for running terminal programs. (Also I don't like that the application developer chooses the permissions to expose rather than the user.

However, I have been using bubblewrap which is what flatpack uses under the hood to sandbox. This allows me to run both gui and non-gui programs, and I have the control of exposing the minimum required permissions that I'm comfortable giving an untrusted piece of software.

I will be honest and reveal my naivete about the permissions. I don't really mess with permission for any program, but I can see how some defaults may be bad.

I will look into bubble wrap, since the sandboxing is important, but the sheer convenience and availability of software is what is appealing.

I'd rather have 5GB of binaries than deal with unmet dependencies one more time (despite many people claims, it is still easy to fall into), my only criticism for flatpak though, is that any kind of modification for a file requires you to navigate through at least ten directories.

Directories are probably the most offensive thing about all package management. Developers are happy to throw their files in .hidden directories anywhere they please. No real standards for that.

I don't know what principles people are adhering to when it comes to the ideal computing environment, but having to deal with the minutia of installation problems to meet some kind of criteria is just not interesting to me either.

Or subtle breakage, because the dependencies from the distro doesn't quite match what the application needs

I prefer my binary over every other universal packages.

Yeah, every universal solution seems to have problems that are major deal breakers.

Flatpaks are my second choice when there isn't a recent enough version in the repos. They're fine but take 1. too much storage space, and 2. are usually slower

I have never considered speed. For example, it may be foolish to use flatpaks for Blender or Godot engine? Or perhaps is it the startup speed that is slow?

yes i'm talking about the startup speed. It's not as bad as snap, but noticeably slower with some apps (it can be annoying for a web browser for example)

I am hoping that is something that goes away in time, but who knows the future. If it sucks now, it may not be worth it now.

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.

Then I'd try Silverblue. It's literally just Fedora Workstation but with their new immutable tech. It's incredibly stable once you install it and is built around having all your things running in containers. If shit fucks up, you can easily roll back to previous versions. Silverblue also has flavours in KDE and Sway. Since it's literally Fedora, it's also made by Red Hat and is what Fedora will eventually turn into.

I just remembered I have a lenovo gaming laptop that gets no love because it is huge and I stopped lugging it around when I inherited a MacBook Air.

Time to try it!

@mojo @DidacticDumbass As somebody who's not very knowledgeable about Linux, what is an immutable system?

I think what it means is that your OS layer is totally isolated from your User layer. So, installing software won't directly mess with your system, possibly breaking things.

Everything is isolated, so it is easy to add thing or roll back with practically no obstacles or consequences.

Theoretically I like the idea but in practice too many bugs, too much disk space, not really clear how to change font size for example... and after all that, some apps are not in flatpak. It is not ready for me yet.

I must be lucky to not have run into drugs, but damn it is probably inevitable. Okay, I will find a better solution. Appimages are apparently the superior version of this concept.

Well... not really. I like them, but flatpak has sandbox and much wider scope. Flatpak also has official repository you can trust, while app images are usually created by random people. Use only ones from original developers or sources you trust.

We still have problems to solve.

I am definitely using Flatpaks for large, basically institutionalized programs like Blender, Godot engine, Cura, Prusaslicer... Still, I should double check.

Authoring seems very easy, and I have no idea if there is a filtering/auditing policy, so thank you. I will be more careful.

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?

My experience with Flatpaks has been so stable and hassle-free that it motivated me to switch to Fedora Silverblue.

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.

I prefer containers for docker/kubernetes but not on my PC.

Yeah, the glory of owning more than one computer. I have a few that I can put to work. Too bad older computers are not as efficient, but perhaps I can invest in a UPC solution that takes solar so not to waste too much energy.

I like containerization for server applications, especially when running different services on one box. For desktop use, native libraries are stable and usually the applications being used are single instance. I don't see a point in running desktop apps in containers.

No doubt the benefits of technology on a server benefits the desktop user to some degree?

Containerization does add complexity in its assembly, but simplifies things for the system overall, which I think is appealing.

Still, that is just another abstraction away from the machine.

On my main PC I use for gaming I run Arch and prefer native packages whenever I can use them. I'm quite happy to have this one computer by a hobby project, and native applications just make more sense on something as up to date as Arch when they're available. I have started to prefer Flatpak over AUR packages though. The AUR is pretty overrated, in my opinion.

On my laptop and anything else I install Linux on I usually just use LMDE, and I'll often prefer the Flatpak, just because it's way more up to date. There are some apps that Mint keeps up to date native versions of, and there are some apps that come preinstalled that I just don't care about having the latest version of, but for everything else I usually just download the Flatpak.

As someone who uses Linux but only kinda, what advantages does flatpack offer over installing something with the provided package manager? (In my case that's apt)

For me it is having up to date packages. Debian is concerned with stability, so many packages are held back for testing, or just stop getting updates.

Another is that Flatpaks are sandboxed, so they won't be messing with your systems.

Yea that makes sense. Idk if it's necessaryly for me, but thank you for explaining it either way

Honestly, it is an extra step that adds complexity. Life is good when you don't need it.

almost all my apps are flatpaks

Nice! May I ask what is your base system?

Opensuse TW.

If I ever get bored of Mint I am jumping back on there. OpenSuse is as perfect a linux distro I have ever used, excepting my graphic driver woes.

I like them for convenience, I don't like them for customability, possibly just because I don't know enough about them.

That is a good point I have not encountered too often. I don't tend to customize the programs I use. I tend to just learn the defaults for that program.

Anyways, people keep recommending FlatSeal, which is a graphical way to customize Flatpak permissions, so that may be helpful to you.

When I first used it it felt like they were usually out of date or missing. But nowadays It seems like I can find like 90% of the apps I use as flatpaks, leaving packages mainly for backend and terminal stuff.

For sure. Just like the fediverse, the more traction it gets, the better the experience becomes.

Unless they come up with something else that is not "Windowsfying" Linux with one-click installs... then nah, no thanks.

Yeah, it seems like all this convergence of convenience is muddying the linux waters... then again it has never been that clean.

If you can't see the possibilities behind automated tasks that you have no control in... then I'm afraid to say that talking to a nearby wall will be more fruitful than (even trying to) start a convo with you right now.

I admit to only having naive user knowledge of flatpaks being an alternative. I am learning a lot today, which is why I asked.

As far as my comment goes, I was thinking about the fuss over systemD, but that is an entirely separate problem I am probably also not equipped to converse about either.

I bet your wall gets a lot of attention.