Portál AbcLinuxu, 1. května 2025 18:49
Toto je typický problém balíčkových distribúcií. Proste v systéme sa nachádza x programov využívajúcich nejaké zdieľané knižnice, ale každý bol skompilovaný pre ich inú verziu. A v systéme je samozrejme len jedna ... tak sa to potom správa takto nepredvídateľne. Funguje to preto dobre iba vtedy, keď sa všetky tieto aplikačné balíky odvolávajú iba na jednu verziu knižnice. Udržať tento stav je však v praxi obtiažne, tým obtažnejšie, čím väčší počet aplikácií v systéme máme.
Riešenia sú dve - alebo si problematické aplikácie neinštalovať z balíkov, ale skompilovať si ich zo zdrojáku s aktualizovanými knižnicami, alebo je aj druhá cesta, žiaľ zatiaľ mimo Linuxu - systém PBI použitý v PC-BSD, ktorý ku každej aplikácii dotiahne aj presne tie knižnice tých verzií, ktoré aplikácia potrebuje.
Nie je to vecou Linuxu ani samotných aplikácií. V akomkoľvek systéme s balíčkami a závislosťami medzi nimi môže a v princípe časom aj musí podobný bordel vzniknúť. Je na to aj odborný výraz. Volá sa to dependency hell. Napríklad ja som mal na FreeBSD problém s nestabilným programom Digikam (program na prácu s foťákmi a fotkami). Pritom stačilo vykašlať sa na balík a vykompilovať si vlastnú verziu binárky a už to ide krásne spoľahlivo, dosiaľ mi ešte nikdy nespadol ani nestuhol.
Proste v systéme sa nachádza x programov využívajúcich nejaké zdieľané knižnice, ale každý bol skompilovaný pre ich inú verziu. A v systéme je samozrejme len jedna ... tak sa to potom správa takto nepredvídateľne. Funguje to preto dobre iba vtedy, keď sa všetky tieto aplikačné balíky odvolávajú iba na jednu verziu knižnice.Přece není problém mít v systému více verzí knihovny. I když je samozřejmě pravda, že sdílené knihovny jsou určené k tomu, aby tam byly pouze jednou. Stav, kdy si každý program přitáhne svoji verzi knihovny (jak tomu je u mnoha windowsových programů), není to pravé ořechové.
No technický problém to nie je. Ale developeri balíkov toto nejak príliš neošetrujú. Trebárs nejaký prehliadač fotiek bol skompilovaný pre libgtk 2.10.5, ale aby balík chodil na väčšine systémov, vyžaduje iba všeobecne libgtk 2.x.x .... pričom nikto nevie, ako to bude chodiť trebárs na libgtk 2.10.2, možno dobre, možno nie a možno s náhodnými chybami, padaním atď.
Ono predstava, že je v systéme 20 rôznych verzií jednej knižnice pre 20 rôznych programov, je síce na prvý pohľad zvrhlá a hnusná, odporuje elegantnej myšlienke "jedna knižnica pre x programov" ale v skutočnosti to funguje dobre. Program potom beží presne s tými knižnicami, pre aké bol skompilovaný, a má to ľahšie aj developer, ktorý sa nemusí párať s riešením spätnej kompatibility do desať verzií dozadu, aj user, ktorému to fakt dobre funguje. Akurát je disk o niečo zaplnenejší. Ono myšlienka zdieľaných knižníc a balíčkov so závislosťami sú v svojom princípe dosť protichodné veci a dať dokopy solídny kompromis je umenie.
Ak sa chce človek tomuto hromadeniu duplicít vyhnúť a pritom chce, aby mu to chodilo dobre, rýchlo a stabilne, zrejme sa nevyhne kompilácii bináriek zo zdrojákov.
Balik mas samozrejme pouzivat jen v te verzi systemu, ve ktere byl kompilovan. Pak vse funguje tak jak ma.No technický problém to nie je. Ale developeri balíkov toto nejak príliš neošetrujú. Trebárs nejaký prehliadač fotiek bol skompilovaný pre libgtk 2.10.5, ale aby balík chodil na väčšine systémov, vyžaduje iba všeobecne libgtk 2.x.x .... pričom nikto nevie, ako to bude chodiť trebárs na libgtk 2.10.2, možno dobre, možno nie a možno s náhodnými chybami, padaním atď.
Toto je typický problém balíčkových distribúcií. Proste v systéme sa nachádza x programov využívajúcich nejaké zdieľané knižnice, ale každý bol skompilovaný pre ich inú verziu. A v systéme je samozrejme len jedna ... tak sa to potom správa takto nepredvídateľne.
Tohle jsem tedy v Debianu jeste nevidel. Tam bud jsou vsechny programy vyuzivajici stejnou knihovnu zkompilovane s jednou verzi, nebo je dostupnych vic verzi knihovny a baliky zaviseji na te, kterou vyuzivaji.
Ani me neni jasne, proc by k takovemu problemu mohlo dojit - pokud autori distribuce kompiluji nejaky software do distribuce, tak ho budou kompilovat priti te verzi knihoven, ktera v distribuci je (a ne proti te verzi, ktera v distribuci neni).
Padanie Firefoxu môže spôsobovať nejaký zle spravený Add-on v ňom. To sa mi už stalo. Riešením je použiť inú verziu FF, alebo iný Add-on. Zmena OS problém nerieši, ak zostane nezmenená verzia FF a sada Add-onov.
Z ostatných menovaných problémov som pozoroval iba padanie Evolution, a to vtedy, keď je v maili veľa obrázkových príloh. To ma štve ale nie natoľko, aby som sa pídil po riešení.
S GIMPom, naproti tomu, som zažil pravidelné pády len pod Windows. Aj tam ale stačilo GIMP preinštalovať novšou verziou.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.