Portál AbcLinuxu, 10. května 2025 09:00
LD_LIBRARY_PATH=. ./VirtualBox
Pri pokuse spustiť to ako normálny užívateľ, dostanem chybovú hlášku
Callee RC: NS_ERROR_FACTORY_NOT_REGISTERED (0x80040154)
Na internete je toho plno, ale riešenie som nenašiel. Ale nadobudol som dojem, že problém je v nahrávaní dynamických knižníc. Po dlhšom skúmaní (a hrabaní sa v zdrojákoch) som došiel k tomu, že zlyhá volanie dlopen(.../out/linux.x86/release/bin/components/VBoxC.so, flags). V tom volaní je uvedená celá cesta. Problém je v tom, že VBoxC.so potrebuje ďalšie knižnice: VBoxVMM.so, VBoxRT.so, VBoxXPCOM.so - ktoré sú o adresár vyššie - v .../out/linux.x86/release/bin/. Ak sa použije LD_LIBRARY_PATH tak sa nájdu.
Finále: zádrhel je v tom, že sudo/su/set-uid-root rušia LD_LIBRARY_PATH (z celkom pochopiteľných dôvodov) a pridať ten adresár do /etc/ld.so.conf nepomôže pretože ldconfig dáva do cache len knižnice v súboroch, ktorých meno začína na "lib" (to bolo ďalšie pátranie v zdrojákoch -R
, kde se mají hledat knihovny za běhu (v GCC se to myslím musí navíc uvozovat volbou -Xlinker
).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.