Skip Navigation

Flatpak or AUR?

I've been using arch for a while now and I always used Flatpaks for proprietary software that might do some creepy shit because Flatpaks are supposed to be sandboxed (e.g. Steam). And Flatpaks always worked flawlessly OOTB for me. AUR for things I trust. I've read on the internet how people prefer AUR over Flatpaks. Why? And how do y'all cope with waiting for all the AUR installed packages to rebuild after every update? Alacritty takes ages to build for me. Which is why I only update the AUR installed and built applications every 2 weeks.

42 comments
  • on my arch-based systems, i use repos first, aur second. appimages third. i do also have a couple minor things (that are self-contained with no dependencies) that were just 'unzipped' into their own directories and links added to menus where appropriate. note that i don't game on these systems. i don't have a lot of aur packages installed, so updates and subsequent recompile time isn't an issue.

    i have yet to run into anything i want or need that isn't available in those. so no flatpaks or snaps.

  • AUR for niche stuff, Flatpak for everything else.

    I personally prefer Flatpak because:

    • It's simple
    • It's the recommended way of installation for most distros, especially image based ones, like Fedora Atomic for example
    • It's accessible for everyone more easily
    • It works most of the time

    I use the AUR in a Distrobox container for software I can't find any other installation method. For me, it's to cumbersome to hop into the terminal and proceed with the installation.
    For Flatpaks, it's just one click and it's done.

  • I prefer Flatpaks, not only because I support the format, but also because of containerization and the ability to clean up an application completely.

    I absolutely hate it when apps randomly place config files everywhere.

  • Nonfree software does not have the ability to be rebuilt on each update anyway, since it's distributed as pre-built binaries. So they won't build anyway.

    I tend to use AUR packages where possible if the package is not in the official repos. Only if the AUR package is broken do I turn to flatpaks.

    • Right. So my priority should be like this:

      Proprietary: Flatpak

      Open Source: Official Repo then AUR

      • My priority is: Official repo, AUR then Flatpak.

        No matter what license it is. Although, if I need microsoft stuff I usually go flatpak there, so it's sealed off.

      • This. Flatpak also provides additional privacy and security features to at least somewhat keep that proprietary garbage under control

  • I usually do distro repos, followed by aur, then flatpak if the aur version is too cumbersome (e.g. obs, game emulators). Funnily enough I use steam native because when I was using the flatpak. I had trouble with mods and things of that nature. A lot of that stuff either needs to be moved to different locations, straight up doesn't work, or requires a bit of permission fiddling and I just didn't wanna go through that. On the other hand. I believe there was a glibc issue on Arch that broke all games on steam native for a couple of days which the flatpak didn't suffer from. Just goes to show nothing is perfect either way.

  • I am on Fedora so the equivalent is COPR.

    Flatpaks can be built pretty messy, use outdated runtimes or even entirely outdated dependencies.

    It is pretty creepy, I digged down the pyramid of dependencies of OnionShare once and that thing is huge, some projects are archived, some had new releases but it still uses the old versions.

    Native packages might not bundle all that in, which means more effort but especially more updated packages.

    The sandbox is determined by the packagers, and a mix between "dont make it too loose" and "dont break use cases". For example many big projects without portal support have host permission to access your theoretical SMB shares or external media.

    But yes, the bubblewrap sandbox is there, it prevents apps from manipulating the system, the syscalls are a bit restricted via a "badness enumerating" and pretty loose seccomp filter.

    This prevents all apps from creating user namespaces, which are like chroots and create a small virtual filesystem for processes. They are used in FF and Chromium for sandboxing. But Firefox also uses seccomp-bpf which works within a flatpak.

    If you want a Chromium browser, it should be native. Firefox arguably too, as it gets another layer of sandboxing. But Flatpaks are isolated from the system.

    Have a look at bubblejail, which allows to sandbox programs from the OS with bubblewrap, but with a custom filter that can allow user namespaces.

  • people prefer AUR over Flatpaks. Why?

    Some stuff doesn't work as Flatpak, or I actually prefer for it to be compiled against what's actually on my system rather than a generic one-size-fits-all binary, or simply isn't in Flatpak.

    Flathub is tiny (under 3k packages), AUR has over 85k – and yes I know that many of those are abandoned or maintained very loosely but even if you only count the packages updated in the last year that's still over 10x bigger than Flathub.

    Examples: kernel modules, CLI tools, libraries, versions of apps compiled against old UI frameworks (like Claws-Mail with GTK2), obscure apps, drivers for obscure hardware, stuff with dubious legal standing like file sharing apps etc.

    how do y'all cope with waiting for all the AUR installed packages to rebuild after every update?

    I don't. I disabled AUR updates and only update AUR packages when they break. Sometimes if I'm bored I'll run a pamac checkupdates --aur and do a pamac build <package> on anything I see there that might be interesting to have a new version of. But most of the time like I said I wait for them to break, which happens surprisingly seldom.

    Alacritty takes ages to build for me.

    Yeah some apps are ridiculous. Pika Backup is another example, RPCS3, and so on. For some of those I actually resort to Flatpak.

    The choice is not always so clear cut because Flatpak stuff will tend to have random features present or missing. For example a while ago the Flatpak Handbrake could do accelerated encoding on the GPU, now it can't. So I was forced to go back to native Handbrake.

42 comments