Well, at this point it's very complicated.
And this is why I think snap/flatpack/etc model ("system" in system) is real solution for linux desktop.
Valve's Steam client already achieved same thing: provided one "sdk" for apps, one runtime (that developer can rely on) - because you can't have one main linux organisation like microsoft and apple.