Nechci malovat čerta na zeď, ale zdá se, že po poslední aktualizaci kernelu F10 na 2.6.27.12-170.2.5, nějak začalo zlobit dynamické linkování. A nebo alespoň detekce závislých knihoven pomocí ldd.
U mne začalo zlobit spouštění vmware a vmplayeru. Někdy se to spustilo a někdy to jen vypsalo, že chybí ta či ona knihovna. Problém je v tom, že spouštěcí skripty detekují přítomnost potřebných knihoven právě pomocí ldd. A pokud se nějaká knihovna nenajde, přidá se její lokální umístění z /usr/lib/vmware/lib do LD_LIBRARY_PATH. A právě ldd začalo zlobit. Když se pokouším vypsat závislosti něčeho komplikovanějšího (vmware, openoffice a pod.), tak v polovině případů ldd vypíše co má vypsat a v druhé polovině případů to vypíše jen neznámou chybu 139 (někdo někde vydedukoval že je to 128+11 - tedy asi SIGSEGV).
Takže pokud se někomu začne něco chovat hodně podivně způsobem, že to někdy běží a někdy ne, doporučuji okamžitě slézt na starší kernel, s nímž to (zdá se) nezlobí.
Bugy toho druhu jsem našel. Ale dva roky staré. Mně ten problém teď úplně stejně “vytrestal” na dvou pc s takřka čerstvou instalací F10. Ale aby to nebylo jen tak, na nb kde je instalováno úplně totéž, to ten problém nevykáže. Takže na to kašlu než se něco “rozsype” více.
Pokud to někomu bude podobně zlobit s vmplayerem nebo vmware (ať už desktopem nebo serverem), tak doporučuji:
pouštět vmplayer, vmware a pod. přímo z /usr/lib/vmware/bin/vmplayer /usr/lib/vmware/bin/vmware a pod.
a pak postupně:
pokud vám to zahlásí něco jako: error while loading shared libraries: libview.so.2: cannot open shared object file: No such file or directory, tak:
buďto se pokuste nainstalovat chybějící knihovnu (pro hledání ve kterém balíčku je knihovna obsažena lze hezky použít třeba http://rpm.pbone.net)
nebo vytvořte pod rootem v adresáři /etc/ld.so.conf.d soubor vmware.conf a do něj přidejte řádek vedoucí ke knihovně v adresáři /usr/lib/vmware/lib/název chybějící knihovny
spusťte pak pod rootem ldconfig
taky by samozřejmě šlo použít LD_PRELOAD takhle:
LD_PRELOAD=knihovna1:knihovna2:…:knihovnaN /usr/lib/vmware/bin/vmplayer
nebo LD_LIBRARY_PATH takhle:
LD_LIBRARY_PATH=cesta_ke_knihovně1:cesta_ke_knihovně2:…:cesta_ke_knihovněN /usr/lib/vmware/bin/vmplayer
nakonec výše uvedeným postupem můžete i upravit nebo zcela přepsat spouštěcí skripty /usr/bin/vmplayer a /usr/bin/vmware nebo si je můžete v upravené podobě umístit do /usr/local/bin nebo ~/bin
Výsledkem je rychlejší spouštění produktů vmware a jejich nezávislost na zlobivém/nezlobivém ldd.