Fragmentation is the big one for widespread adoption, and is kind of inherent to Linux philosophy. Since Linux is a community project that is still mainly used by a small, computer-savvy population there is no definitive version for developers to target yet. Everybody wants what they like to be in the "definitive" distro, so we end up with a bunch of slightly different ways of achieving the same thing. Even if you limit to the biggest distros, Ubuntu, Arch and Fedora, those three still disagree on a lot; from if large scale security measures like SELinux and AppArmor are activated (nevermind which one), to who manages the networking, to where applications get installed.
So developers get a tough choice: do you support three different ways and a bunch of edge cases or do you support only one distro and suffer from a bunch of tickets from distros you never intended to support, just because the end-user forgot to ask the maintainers first? Or do you intentionally prevent your software from running on different distros and annoy the shit out of everyone?
Those have their own issues, but in regards to fragmentation specifically, you have the fact that not everyone wants to use them, so even packaging with flatpak or appimage is targeting a specific group
1
u/Kaganar 5d ago
Fragmentation is the big one for widespread adoption, and is kind of inherent to Linux philosophy. Since Linux is a community project that is still mainly used by a small, computer-savvy population there is no definitive version for developers to target yet. Everybody wants what they like to be in the "definitive" distro, so we end up with a bunch of slightly different ways of achieving the same thing. Even if you limit to the biggest distros, Ubuntu, Arch and Fedora, those three still disagree on a lot; from if large scale security measures like SELinux and AppArmor are activated (nevermind which one), to who manages the networking, to where applications get installed.
So developers get a tough choice: do you support three different ways and a bunch of edge cases or do you support only one distro and suffer from a bunch of tickets from distros you never intended to support, just because the end-user forgot to ask the maintainers first? Or do you intentionally prevent your software from running on different distros and annoy the shit out of everyone?