„pritom by stacilo vymyslet zpusob, kterym se predaji verze systemovych knihoven a cesty k nim uz zkompilovane binarce.“
Cesty nepotřebuješ předávat (v binárce totiž většinou nejsou, hledá je linker). A předávání verzí ti nepomůže, protože když je do toho programu zakompilované jedno ABI, tak ti nic nepomůže, ten program s novou verzí prostě chodit nebude.
Základní problém je v tom, že programátor udělá knihovnu s funkcí třeba int moje_funkce(int a, int b, char *c);
za půl roku ho napadne, že by ten jeho program mohl mít ještě nějakou novou cool funkci a změní to na: int moje_funkce(int a, int b, char *c, char *d);
Většina vývojářů knihoven si na tuto situaci dává pozor a nedělá ji. Ale ne všichni. A když mají distribuce takové podmínky, že „všecko musí být linkováno dynamicky, statické knihovny se dokonce v distribuci nesmí ani vyskytovat“, tak pak není snadné udělat binárku co chodí na více distribucích.
Správně by distribuce měla rozdělit knihovny na ty, co mají stabilní rozhraní (a ty dodávat jako dynamické), a na ty, co nemají (dodávat jako statické).