Java esetén is ezt úgy oldották meg hogy van egy alkalmazásod amihez hozzá van csomagolva az összes könyvtár. Ezek együtt alkotnak egy egységet. Az alkalmazás fejlesztőjének a felelőssége hogy a különböző könyvtárak kompatibilitását biztosítsa és amennyiben security probléma adódik, akkor frissítse az alkalmazását illetve a hozzá tartozó könyvtárakat is - úgy és abban az ütemben ahogy ezt kell.
A "bináris" függőségeket pedig verziózva a maven repository-k tárolják, amik szét vannak mirrorozva, ha pedig azt akarod biztosítani hogy a világvége (illetve a global maven repo-k leállása) esetén is bármelyik időpillanatban tudjál buildelni, arra ott a vannak a repository managerek amiket a saját infrastrukturádba be tudsz telepíteni és ezzel biztosíthatod hogy a csomagok mindig rendelkezésre álljanak (Nexus Repository, Artifactory, stb.). Nyilván a java bytekód struktúrája miatt nem kell mindenféle platform/os/cputype-ra fordítani, tehát ezt a nyelv sajátossága miatt megspórolod, nem szükséges - legalábbis a külső függőségek számára - a build környezet.
Szerintem a fő kérdés itt a felelősség. Ahogy elkezdődtek a különböző nem operációs rendszer szintű csomagok beszivárogni a disztribúciókba, előjött a kérdés hogy hol a határvonal, kinek mi a felelőssége.
A magam részéről inkább használom a hivatalos fejlesztőktől származó alkalmazásokat (most pl. Keycloak-kal foglalkozom), mint hogy azzal töltsem az időmet, hogy a disztribúcióban valahogy összerakott csomaggal küzdjek, amely lehet hogy jó lesz, de az is benne van hogy nem teljesen. Ebben szerintem a docker/podman/stb. egy nagyon jó irányt mutat, és én inkább mennék ebbe az irányba (postgresql-t, keycloak-ot, stb. mind így futtatok). Terhelést is levesz a distrokról, úgy is fog minden működni ahogy azt a fejlesztők leírják, lehetőségem is van akár párhuzamosan több különböző verziót használni, nem is szemeteli tele a rendszert.
Én inkább ebbe az irányba mennék.