The way I understand it is like this:
The grand theory of classic package managers is the idea that lots of programs all need the same core libraries to function. An analogy would be like noticing most construction jobs need nails
. So instead of making everyone bring their own copy of nails
, resulting in dozens of redundant copies of it lying around, they have a single nails
package that everyone can use.
But there are different versions of nails
out there. Each version picks up unique new features, and drops legacy ones. Recent builds may incorporate and thus require the new features, making them incompatible with old versions of nails
that don't have them. On the other hand, some builds may still use and rely on legacy features of nails
, and are thus incompatible with the new versions. You may run into a scenario where you want Software A that needs nails
version 14+, but also Software B that can only run on nails
v <13, and you just can't, because they don't overlap.
Additionally, there may just be a totally different competing package out there, screws
, that does largely the same job as nails
, but in a completely different way that is totally incompatible with projects that expect nails
. So if you need Software C that relies on nails
, but also Software D that relies on screws
, you might cause problems by installing both.
What a distro is is essentially a group of devs declaring that they are putting together some specific list of libraries (like, say, nails
v14), and then sculpting up a bundle of software around those specific libraries. Can't cope with nails
v14? That sucks. No package for you, then.
In that sense, distros are differentiated by what libraries and other low-level system softwares are available to the programs you wish to install on them. If you want your program to be available natively on every distro, it needs to be compatible with every competing set of libraries each distro has elected to use.
It is possible to just say "fuck it" to the distro's built-in libraries, and instead bundling the specific version of nails
or screws
or whatever you project needs directly with it. Build your own with blackjack and hookers, as it were. That's exactly what Flatpak does, among others. But it's trading flexibility for redundancy. In the age of cheap and plentiful storage memory, many people think this trade is well worth it. But it makes many formalists cringe.