Hey all. I have been using fedora a bit and have been confused about what repos to use.
Personally, I like the idea of Flatpaks. I like how you could uninstall a package and not have leftover dependencies/ files. I personally hated that with Windows. I have a large drive so storage space isn’t much of a concern to me. Would RPM provide more performance? I heard that Flatpaks are a bit slower. What reason should I want to use RPMs? I’ve heard that you should always use RPMs and if you can’t find it, use Flatpak. Why is that? Is it because it takes up more storage? I heard that RPMs are more “integrated” but not sure what they mean by that?
A flatpak will have all it’s dependencies builtin.
Each flatpak will have it’s own copy of the dependencies,
which may be different in each app.
This is both a pro and a con.
The good point is you get everything needed to run the app, the downside is that you may not get timely updated dependencies and it takes extra disk space.
RPMs provide updated dependencies as they are made available and you only have one copy of each installed. Apps as RPMs are integrated with Fedora being patched to use the Fedora conventions, like where is files are installed.
Personally I prefer RPMs as I don’t like the downside of flatpaks.
But, so far, all apps I want to use are packaged as RPMs.
Truly, rpm’s in Fedora, are tested on a per release cycle basis, this testing covers various aspects of the packaging, but boils down to the packages that are in Fedora’s official repos are tested to mostly guarantee that the average user won’t end up with a broken/non-functioning system. As well as security issues like CVE’s etc …
In contrast, flatpaks are built around the concept of shipping functioning applications that don’t need to have more libraries installed on the host OS to run correctly OOTB [1]. They do not just keep adding the same libs other flatpaks are using repeatedly though, there is some deduplication through the use of shared runtimes for instance. Fedora curates a set of flatpaks that have been tested to work with Fedora’s own runtime (which is based on freedesktop’s likely).
The end result is that an app installed via the typical package manager will likely have a lower impact on storage than it’s corresponding flatpak install, but it get’s a bit difficult to definitively do an ‘apples to apples’ comparison I find. The downside to traditional package manager installations (from the flatpak POV [2]) is that it modifies your host system.
I don’t know if that answers your questions effectively, but from my own experiences, I have found flatpaks to deliver on their promise of working OOTB (mostly), and will install applications as flatpaks or as a traditional package via DNF, mostly based on my use needs, not as an either/or question.
For the same reason, you can like RPM packages. Also with this traditional package manager, unused dependencies are/can automatically be removed from the system.
An advantage of Flatpak and Snap is the updates quickly are rolled out to users on different linux systems. Fedora, however, sees 6-monthly updates, so the software is never seriously outdated - that benefit is, for Fedora users, less important.
Performance wise, you will not (practically) notice the differences between RPM and Flatpak when running the application. On modern systems with SSD, you will not notice differences in startup time. Startup time could be a bit faster for DNF applications on older hardware with a traditional hard drive.
I fully support the conclusion of Stephen Douglas Snow:
I will install applications as flatpaks or as a traditional package via DNF, mostly based on my use needs, not as an either/or question.
My view is: Do you trust the distro and how they handle packaging, or do you need to the compatibility layer and consistency of Flatpaks between different distros?
RPM is Red Hat packaging. Fedora is Red Hat. It can’t get any more supported than that
I’m largely against Flatpaks and avoid them. I want stuff running native with the OS libraries; why else am I using a distro with up-to-date stuff if not to be using as much of that up-to-date stuff as possible
The few times I’ve tried Flatpaks wasn’t impressive: On Fedora 39 I needed a flatpak for Doomsday Engine (DOOM engine), and it didn’t even work right. openSUSE has it in their default repos built as a RPM. Same with Devilutionx (Diablo 1 engine); no RPM for Fedora, but also built on openSUSE as RPM. In Devilutionx’s case they had an AppImage that I preferred over Flatpak on Fedora.
I feel Flatpaks exist as a convenience solution, or worst-case laziness Stuff can still be built as native RPMs today and use system libraries instead of (eg) tagging some one-point-release-oudated Mesa version and pulling in several-hundred-MB of those dependencies instead of just using my distro’s stuff. I feel Flatpaks are more for niche distros either far-behind upstream versions for core packages (maybe something like Debian for stability on Mesa or OpenSSL 1.1), or bleeding-edge distros lacking compatibility/old libraries (Clear Linux).
And bluntly, if your software is only available as a Flatpak, I’m assuming it’s not well-maintained and not bothering with it. Your software needs to run with up-to-date libraries and have active development. Not hide behind someone else’s giant compatibility library and hope for the best; save that fluff for Steam and ancient 32-bit abandonware games (that would probably be better through Windows versions with Wine anyway :p)
Flatpaks are sandboxed, meaning they often have to do things like communicate through portals to access some resources. The upshot is that you don’t have to trust app developers as much with the data on your system. A downside is that sometimes an app needs access to things that haven’t been accounted for by the Flatpak/FreeDesktop devs. As an example, Blender’s Flatpak can’t (as of this writing) do hardware-accelerated path tracing with Radeon GPUs, as discussed in this GitHub thread. RPMs have fewer restrictions to deal with, so they sometimes work better with other components of the system.
Aka Flatpak permissions fighting against the OS’s own permissions systems.
Why would someone be using Blender from Flatpak and being subject to that, instead of Blender in Fedora’s repo as an RPM, with well-known methods for hardware-acceleration?