this post was submitted on 04 Mar 2025
115 points (96.0% liked)

Linux

50739 readers
943 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

I'm admittedly yelling at cloud a bit here, but I like package managers just fine. I don't want to have to have a plurality of software management tools. However, I also don't want to be caught off guard in the future if applications I rely on begin releasing exclusively with flatpak.

I don't develop distributed applications, but Im not understanding how it simplifies dependency management. Isn't it just shifting the work into the app bundle? Stuff still has to be updated or replaced all the time, right?

Don't maintainers have to release new bundles if they contain dependencies with vulnerabilities?

Is it because developers are often using dependencies that are ahead of release versions?

Also, how is it so much better than images for your applications on Docker Hub?

Never say never, I guess, but nothing about flatpak really appeals to my instincts. I really just want to know if it's something I should adopt, or if I can continue to blissfully ignore.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 16 points 10 hours ago (1 children)

This is what's so great about Linux, you can use whatever the hell you want.

Flatpaks provide some cool security functionalities like revoking network access to a specific application. Maybe you care about this, maybe you don't.

My personal policy is to always install from the repos. Occasionally something is only available in flathub, which is fine for me. I really understand how hard is maintaining something for every single package manager and diatributions and totally respect the devs using a format that just works everywhere. If I were to release a new Linux app, I would totally use flatpak.

[–] [email protected] 4 points 8 hours ago

Same boat. As a user, I greatly prefer everything to come from the repos. However, as a distributor, Flatpak makes so much more sense.

The only Flatpak I have installed is pgAdmin. I looked at the build on Flathub with the idea of porting the package myself but got scared off. It was a maze of Python dependencies running in Electron. That seems like exactly the kind of thing that may be better off in its own sandbox.

[–] [email protected] 23 points 14 hours ago* (last edited 11 hours ago) (2 children)

As someone who develops and distributes a small application exclusively on Flathub, I prefer that everyone uses the exact same package on every system. That way I know that if something doesn't work, the issue should be easy to reproduce.

Recently, there was a situation where a user indicated in the comments of a release announcement that a newly introduced feature “doesn't work”. It turned out that they installed a third-party package from the AUR (that wasn't updated yet) without knowing that this isn't the official and up to date version.

[–] [email protected] 5 points 10 hours ago* (last edited 10 hours ago)

It just has to always be the first question in a big report or forum question. Have they verified their issue with the Flatpak version?

I prefer packages from the AUR myself but I do not expect the software authors to support me. Distros need to support their own packages but the AUR is not part of the Arch distro. Arch does not support the AUR. The only support I should expect would be from the package author (the AUR package) and they likely do not have the ability.

I think the right way to understand Flatpak is that it is essentially its own Linux distro without a kernel. You have to be running that version if you expect support. People think of Flatpak as a “sandbox” which it is. But it is also like running an app in a Docker container or Distrobox where you have to pick a distro to run in the container. With Flatpak, you are running on the “freedesktop” distro. It is not the same environment as the rest of your system (right down to the filesystem layout and C library).

[–] [email protected] 1 points 11 hours ago (1 children)

This seems to be a dependency failure.

I'm sad that we had this solved 20 years ago. It's like Texas measles.

[–] [email protected] 4 points 8 hours ago

What do you mean by this? Flatpak definitely solved the Linux distro balkanization problem for application developers without trying to destroy the benefits of having different distros. Having a distinction between system software, utilities, and advanced end user applications does solve a problem.

[–] [email protected] 7 points 11 hours ago* (last edited 11 hours ago)

Personally it depends on distro and package manager.
If your on arch yes you can in a easyish way some aur packages may require you to compile it.
Other distros you can either compile the software from source or convert .deb to .rpm (for example) this is mediumish and takes time to do.

[–] [email protected] 3 points 9 hours ago

I never use flatpaks and am doing just fine. I don't want my packages to be installed from a bunch of different places; I want it all managed by one package manager, which for me is my distro package manager. I've never noticed a problem arising out of not using flatpaks; everything I want is either already packaged for me, or I can make a package myself.

[–] [email protected] 13 points 14 hours ago

Yes. Yes you can.

Ignore it. Move on.

[–] [email protected] 10 points 14 hours ago (1 children)

Adopt nix and you will be able to ignore it forever! 😉

Seriously though, as others have said, use whatever fits you best. I avoided snaps and flatpaks due to the increased size requirements. So many things were duplicated for no apparent benefit (to me). However, with their introduction of permissions and portals, it does seem like a safer option. Although, we're in a phase right now where not everything is flatpakked and applications trying to talk to each other is a pain (keepassxc unable to talk to flatpak ~~firefox~~ librewolf, chromium, etc.).

Now that I use nix, I have a whole bunch of other problems, but at least getting packages is quite low on the list.

Anti Commercial-AI license

[–] [email protected] 2 points 10 hours ago (1 children)

Thanks for the suggestion. I am interested in nix, but haven't explored it yet.

[–] [email protected] 5 points 9 hours ago (1 children)

I wasn't being very serious about nix. IMO, it's quite the time investment due to its poor documentation and it has a lot of gotcha's if you aren't on NixOS e.g one example is that it's great for terminal applications, but horrendous for GUI applications as it'll be hit or miss. Again, this is if you're not on NixOS. So, it can feel like an "all or nothing" approach.

If you have the time and will, then it can be very rewarding. But if you just "want something that works ™ " side by side in your current system, personally, I wouldn't recommend it - unless it's hidden by some other tool like devenv (which is a great tool for reproducible developer environments).

Anti Commercial-AI license

[–] [email protected] 2 points 9 hours ago

Lol thanks for clarifying your sarcasm. 😂 I can be an airhead at times.

I was actually interested in trying NixOS on a laptop that is gathering dust. I did see a few months ago that there was some drama surrounding the project owner, though. I never investigated enough to understand what that was all about, but I'm less excited about digging into something if it may suddenly end.

[–] [email protected] 24 points 17 hours ago

Sure you can! Just run alias flatpak=snap and you'll be golden.

(I'll show myself out...)

[–] [email protected] 32 points 19 hours ago* (last edited 13 hours ago) (2 children)

Downsides of distro pacakges:

  • someone needs to package an application for each distro
  • applications often need to maintain support for multiple versions of some of their dependencies to be able to continue to work on multiple distros
  • users of different distros use different versions of the application, creating more support work for upstream
  • users of some distros can't use the application at all because there is no package
  • adding 3rd party package repos is dangerous; every package effectively gets root access, and in many cases every repo has the ability to replace any distro-provided package by including one with a higher version number. 3rd party repos bring the possibility of breaking your system through malice or incompetence.

Downsides of flatpak:

  • application maintainers are responsible for shipping and updating their dependencies, and may be less competent at doing timely security updates than distro security teams
  • more disk space is used by applications potentially bringing their own copies of the same dependencies

🤔

[–] [email protected] 24 points 17 hours ago* (last edited 17 hours ago) (1 children)

Another upside is the easy permission management.

You can revoke network access from your password manager to reduce attack surface; you can revoke camera access from your chat app to prevent accidentaly enabling it; You can restrict an app's file system access to prevent unwanted changes; etc.

It's not yet fit to protect from malicious apps, but it still finds some use.

[–] [email protected] 2 points 9 hours ago

It’s not yet fit to protect from malicious apps, but it still finds some use.

That it is "not yet fit to protect from malicious apps" is an important point which I think many people are not aware of.

This makes sandboxing something of a mixed bag; it is nice that it protects against some types of incompetent packages, and adds another barrier which attackers exploiting vulnerabilities might need to bypass, but on the other hand it creates a dangerous false sense of security today because, despite the fact that it is still relatively easy to circumvent, it it makes people feel safer (and thus more likely to) than they would be otherwise when installing possibly-malicious apps packaged by random people.

I think (and hope) it is much harder to get a malicious program included in most major distros' main package repos than it is to break out of bubblewrap given the permissions of an average package of flathub.

load more comments (1 replies)
[–] [email protected] 26 points 19 hours ago

I might be an exception here, but I really like flatpaks. I like their sandboxed nature and using Flatseal, you can cherry pick the permissions you want to give to a flatpak application. Don't want to give n/w access, boom done, like that. And finally if anything goes wrong, delete the app data and you are fresh to go. Also from a security standpoint, you can grand or deny access to specific directories and most apps don't have root access.

[–] [email protected] 4 points 13 hours ago* (last edited 13 hours ago) (1 children)

I'm using MX Linux AHS, it is Debian based, it is always up to date, like latest firefox a few hours after it's out, kernel 6.12.17 as of today, etc.

It has no systemd, no snap, no flatpak. It just uses the good old .deb and everything is working fine.

[–] [email protected] 0 points 10 hours ago (1 children)

Glad it is working well for you. What does that have to do with this post?

[–] [email protected] 1 points 22 minutes ago

no flatpak. chill.

[–] [email protected] 46 points 21 hours ago* (last edited 21 hours ago) (3 children)

Yes. You can always build from source; If need be

[–] [email protected] 21 points 19 hours ago* (last edited 19 hours ago)

Correct, horse_battery_staple

[–] [email protected] 15 points 21 hours ago (1 children)

Some kinda wise guy over here 🤣

load more comments (1 replies)
[–] [email protected] 2 points 16 hours ago

Only if the application source code fits the API of the library versions on your system. Otherwise you also need to port the application to your available library versions. Also using different dependency versions might surface bugs that you have to sort out yourself.

I only want to point this out because it often seems that the people that complain about flatpak do not grasp what maintaining a package entails, and your suggestion effectively puts you in the position of being a package maintaier for your specific distro. (But the upshot is that with open source software you are always free to do this, and also share it with other people through (community-) repositories)

[–] [email protected] 41 points 21 hours ago (2 children)

You're just not the target user.

The whole OCI mindset is geared towards absolute noobs like me, and cloud native devs that develop inside containers on a daily basis.

Take me for example. I use Bazzite, it's the first distro I couldn't break. On top of that, flatpaks, appimages and brew are my only options for software. Since Bazzite is an atomic distro (think immutable ) I could also use Distrobox but I don't want to deal with it.

Everything just works for me, I don't care about anything. I broke so many distros before. Sure, I don't control every nut and cranny but I don't want to.

If you know how to not break your stuff then that's great, but I don't, and I don't want to learn that. I just want to learn other things.

[–] [email protected] 7 points 19 hours ago (2 children)

Not to be that person, but you aren't restricted to those solutions for software, that's what rpm-ostree is there for. It layers applications over your system image and installs software in a similar manner to a "normal" package manager.

[–] [email protected] 6 points 18 hours ago (1 children)

rpm-ostree is intended to be the last resort because layering causes issues with updates and other things

load more comments (1 replies)
load more comments (1 replies)
load more comments (1 replies)
[–] [email protected] 7 points 15 hours ago* (last edited 15 hours ago) (1 children)

it comes down to how you use your system. if you're fine using is as described and you're on a distro that gets newest versions, keep on truckin'.

for me, I hate rebooting. I like to leave my system and return to it, be it laptop or desktop, and continue where I left off. sometimes that goes on for days, sometimes weeks. that's virtually impossible when updating both system and app stuff constantly, i.e. to get new apps you also get new kernel, mesa, plasma, whathaveyous.

so I keep my system stuff that's handled with the package manager and my app stuff separate. almost all of my GUI apps are flatpak and they are on a systemd timer so they get updated daily. my systems don't bother me with update alerts, don't do shit in the background and that's how I like it. once a month or so I do a system upgrade and reboot.

[–] [email protected] 3 points 15 hours ago

This is exactly how I do things too.

[–] [email protected] 30 points 20 hours ago (1 children)

I don't develop distributed applications, but Im not understanding how it simplifies dependency management. Isn't it just shifting the work into the app bundle? Stuff still has to be updated or replaced all the time, right?

That's correct. This simplifies the dependency management system because not every distribution ships with every version of every package, so when software requires a version of a package that the distro dosesn't ship with or have in its repositories, the end user has to either build the package from source, or find some other way to run their software. Flatpaks developers will define the versions of dependencies that are required for an application to run and that exact version is pulled in when the flatpak is installed. This makes the issue of every distro not having every version of every package moot.

Don't maintainers have to release new bundles if they contain dependencies with vulnerabilities?

They don't have to, no. But they absolutely should.

Is it because developers are often using dependencies that are ahead of release versions?

Sometimes, yes. Or the software is using a dependency that is so old that it's no longer included in a distro's package repositories.

Also, how is it so much better than images for your applications on Docker Hub?

I would say they're suited to different purposes.

Docker shines when availability is a concern and replication is desired. It's fantastic for running a swarm of applications spread across multiple machines automatically managing their lifecycles based on load. In general though, I wouldn't use Docker containers to run graphical applications. Most images are not suited for this by default, and would require you install a bunch of additional packages before you could consider running any graphical apps. Solutions to run graphical applications in Docker do exist (see x11docker), but it doesn't really seem like a common practice.

Flatpaks are designed to integrate into an existing desktops that already have a graphical environment running. Some flatpaks include the packages required for hardware acceleration (Steam, OBS) which can eliminate the need for those packages to be available via your distro's package manager.

What this means is that a distro like Alpine Linux that doesn't have an nvidia package in its repos can still run Steam because the Steam flatpak includes the nvidia driver if you have an nvidia GPU installed.

Never say never, I guess, but nothing about flatpak really appeals to my instincts. I really just want to know if it's something I should adopt, or if I can continue to blissfully ignore.

¯_(ツ)_/¯ It's a tool. Use it when it's useful, or don't.

[–] [email protected] 10 points 20 hours ago* (last edited 19 hours ago) (1 children)

Thanks for the detailed answer. I think I have a clearer picture of the problems it's trying to solve and the solutions it's delivering.

It also now seems connected to immutable distros I've heard about recently. So I guess the idea there is that the OS is just a tiny core set of libraries that never have to change, then the applications have their dependencies bundled, instead of requiring them as system dependencies.

I'm not convinced it's something I want as a user, but more importantly not something I need.

From a development perspective, it seems downright seductive, allowing almost total freedom of opinion.

[–] [email protected] 2 points 10 hours ago

As a user I definitely want flatpaks and use them over distribution packages whereever possible. First I can sandbox the flatpak, but not the native package. Why would my browser need to be able to read my ssh keys?

Secondly I just have seen too many distro packagers sabotaging packages in the most braindead ways possible. Debian removing almost all the random data during key generation because some static analysis tool did not like the code. To this day there are servers using one of the 32k keys debian could produce during that time (they are of course all brute forced by now). Fedora removing Codecs from a video encoder, dependencies that upstream knows are broken and listsmas such in its documentation being used anyway. Random patches being applied, or versions years out of date getting shipped...

[–] [email protected] 15 points 18 hours ago (1 children)

Can I ignore flatpak indefinitely?

Sure, at least until software you want to use is flatpak only, e.g. Bottles

[–] [email protected] 9 points 18 hours ago* (last edited 18 hours ago) (1 children)

Or use a stable distro, need a package newer than 2 years, and don't want spend a day compiling dependencies of dependencies.

[–] [email protected] 2 points 11 hours ago

Nah, building from source takes a few minutes unless you are building a web browser.

[–] [email protected] 21 points 20 hours ago

Is it because developers are often using dependencies that are ahead of release versions?

That has been my experience recently. I had the same mindset as you until a critical piece of software I use shat the bed on Arch (LiveCaptions) that affected my being able to watch training videos for work.

Because it was time critical and I didn’t feel like possibly breaking other things for one package, I grabbed the flatpak. It came with its own nvidia driver package (mine was newer) and it worked out of the box without having to mess with anything and that was enough to change my hardline view on that.

Now it’s just another tool to use in an emergency when important things randomly break.

[–] [email protected] 6 points 15 hours ago

FLOSS used to include the ability to build software. Perhaps that's not important anymore but now a days some developers don't attend problems with their build recipes because they only consider what they release through binaries, whether on flatpak or whatever other binary repository they like. At least I dislike that, it's ok to me some or most users would prefer to grab a bloated binary rather than building anything, but that doesn't mean forgetting about those actually wanting to build from source, or wanting to use shared libraries and software from their distros, actually that's a requirement for free/libre software repositories. Not sure if the tendency is to move the gnu+linux users into app stores like the ones on windows, now ubuntu snaps, android play store and the like. Sure there's more security with sandboxing, but nothing one can't get with firejail, and if wanting MAC as well then firejail + apparmor for example.

At any rate, just my little rant. And if you're wondering, I use AUR on Artix, and I really hope I won't have a need for a flatpak stuff.

[–] [email protected] 12 points 19 hours ago* (last edited 19 hours ago)

Just as my two cents, as a user - I like flatpaks because I can have up to date versions of certain applications on a more stable Debian base. I also like that application configs all go in one spot (~/.var/app/com.Example.example), and having granular permissions management per application. As for immutable distros, I'd happily use one if I wasn't already getting all the stability I need from LMDE :)

[–] [email protected] 6 points 17 hours ago

If your distro provides everything you need then I would avoid flatpak. Getting apps to speak to each other is a pain, updates use more data, backups and restores take much longer, they don't perform as well and config files are not necessarily where you expect them to be.

I have Debian Stable on an older laptop and only install apps as flatpaks if they are not available otherwise. I also have a very new laptop with Fedora on it (because it needs a newer kernel) and have had to install more flatpaks just to make things work properly, because they include their dependencies, codecs etc which are missing in Fedora. Appimages seem to do this too and I find them preferable to flatpak because they integrate more predictably with my system. Apps are slower to launch though and have to be manually updated.

Like you, I'd prefer to just have a package manager and a single source of software and plan to go back to Debian when my newer machine is supported by it.

[–] [email protected] 15 points 21 hours ago

I personally like flatpak and its build system. Flatpak applications are sandboxed by default and don't require root during any part of installation, reducing the risk of malicious/broken software damaging the host. They also are available for basically any base distro, meaning i can use the same apps if a ever distrohop and i can even just copy over the config folders as if nothing happened.

[–] [email protected] 3 points 15 hours ago (1 children)

Arch based distros (except for Manjaro) has every FOSS and some proprietary software on the AUR

[–] [email protected] 2 points 10 hours ago

Let me try to clarify what you are saying.

You are saying that the AUR “has every FOSS and some proprietary software”. Yep. That is why I add an Arch Distrobox to every system regardless of the host distro.

But what do you mean by “except Manjaro”? Most Manjaro fans will say that Manjaro also supports the AUR. They are correct that you can certainly enable it and start installing packages from there.

I assume you are warning that, because Manjaro maintains its own base repos and has different package versions in it than Arch does, that Manjaro is incompatible with the AUR and that using the AUR with Manjaro will cause problems. If that is what you are saying, I agree with you.

[–] [email protected] 8 points 19 hours ago (1 children)

Yes you can. I do. If a software does not offer build instructions, which is rare, I just do not use it.

[–] [email protected] 3 points 12 hours ago

The build instructions for all flatpaks are in one repo, you could build it yourself and maintain your own registry if you wanted.

[–] [email protected] 9 points 21 hours ago (1 children)

It depends a bit on perspective and use-case, really. A flatpak'd application can be a fully-featured (all dependencies bundled) package in order to be portable. However, most flatpaks you might commonly encounter don't quite do this. A good portion of the libraries may be distributed in common runtime packages. This will be the case if you use flatpaks from Flathub or Fedora. There still can be bundled libraries with vulnerabilities, but in many cases, there are basic dependencies from external, common library sets.

As far as varying dependency versions, a developer may be on a host with either newer or older dependencies than expected by the user, but as long as the developer's application (and any unique libraries) are compiled against a common runtime as previously mentioned, it does make distribution to a wide variety of distros (LTS, 6-month, and rolling alike) relatively easy.

In comparison to OCI images (the kind of images that make up Docker, Podman, and a good portion of Kubernetes container images), flatpaks are a bit less extreme. Flatpaks contain much the same kind of files and structure that a standard distro package would, but simply get sandboxed into their own environment (via bubblewrap). Additionally, flatpaks don't necessarily need system-level access for installation and usage (full userland confinement). It heavily depends on host environment and configuration, but typically OCI containers are a full, minimal, immutable filesystem structure run in a virtual environment. Not quite a virtual machine, as (in Linux anyway) they are run on the host (almost always in a sandbox) without extensive virtualization capabilities being needed. The general difference in security capabilities depends on the differences in sandboxing between a flatpak behind bubblewrap and an OCI container's runtime sandboxing. There is also the notion with OCI containers being able to run as virtualized users, including root. With OCI containers that can obtain root access and a flaw in the sandboxing of say Docker in its standard rootful mode could allow for root level processes in the sandbox to act upon the host.

From what I can think of in comparison, there is the big problem with Flatpak in that it really isn't suitable for packaging command-line applications: only GUI applications and libraries. OCI container images are often tailored for running web apps and other persistent CLI applications

[–] [email protected] 1 points 11 hours ago

OCI CLI apps can also be obtained from brew

[–] [email protected] 7 points 21 hours ago (5 children)

I like package managers just fine. I don’t want to have to have a plurality of software management tools.

Same. I grumble when I have to install things through the AUR. I'd prefer if it was in the official repos.

can continue to blissfully ignore

That's what I've been doing. I haven't run into a situation where I've needed to mess with Flatpak. 🤷 Curious to hear other folk's experiences though.

Also for your consideration, Flatpak seems to be mainly used for desktop GUI apps. You'll still need your regular package manager to install CLIs. So... if you wanna keep your software management tools to a minimum...

load more comments (5 replies)
load more comments
view more: next ›