Použijte ldd příkaz k zobrazení sdílených knihoven vyžadovaných kterýmkoli daným programem - užitečné pro zpracování při chybějící závislosti. Příkaz také uvádí chybějící funkce a objekty.
Syntaxe příkazu ldd
Sledujte správnou syntaxi příkazu ldd, abyste zabránili chybám:
ldd OPTION … SOUBOR …
Použijte jeden nebo více dostupných příkazových přepínačů ldd vložených do adresáře VOLBA místo ve výše uvedeném příkazu: --help | vytiskněte tuto nápovědu a ukončete ji --version | tisknout informace o verzi a ukončit -d, --data-relocs | přemístění procesních dat -r, - funkce-relocs | procesní přemístění dat a funkcí -u, --unused | tisk nevyužitých přímých závislostí -v, --verbose | vytiskněte všechny informace Chcete-li získat další informace o programu, spusťte následující příkaz: $ ldd -v / cesta / do / program / spustitelný
Výstup zobrazuje informace o verzi, stejně jako cesty a adresy sdílených knihoven, například: $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Pokud soubor SO neexistuje vůbec, můžete najít chybějící knihovny pomocí následujícího příkazu: $ ldd -d cesta / do / program
Výstup je podobný následujícímu: linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => nebyl nalezenlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
Nikdy nespouštějte příkaz ldd proti nedůvěryhodnému programu, protože ldd by ho mohl skutečně spustit. Místo toho použijte bezpečnější alternativu, která zobrazuje pouze přímé závislosti a ne celý strom závislosti: $ objdump -p / path / to / program grep POTŘEBA Musíte poskytnout úplnou cestu k aplikaci, pokud chcete najít její závislosti s ldd, což můžete dělat několika způsoby. Například takto najdete cestu k Firefoxu: $ find / -name firefox
Problém s příkazem find však je, že nejen že bude obsahovat spustitelný soubor, ale všude, kde se nachází Firefox, Tento přístup je trochu přehnaný a pravděpodobně budete muset použít příkaz sudo, abyste získali vaše oprávnění, jinak byste mohli dostat spousty chyb odepřených oprávněním. Místo toho je mnohem snazší použít příkaz whereis k nalezení cesty aplikace: $ whereis firefox
Tentokrát výstup může vypadat takto: / usr / bin / firefox / etc / firefox / usr / lib / firefox Jediné, co musíte udělat pro nalezení sdílených knihoven pro Firefox, je zadat následující příkaz: $ ldd / usr / bin / firefox
Výstupem z příkazu bude něco jako: linux-vdso.so.1 (0x00007ffff8364000)libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000) Linux-vdso.so.1 je název knihovny a hexadecimální číslo je adresa, kam bude knihovna načítána do paměti. Na mnoha dalších řádcích si všimnete, že symbol => následuje cesta. Toto je cesta k fyzické binární; hexadecimálním číslem je adresa, na které bude knihovna načítána. Jak používat příkaz ldd
Jak najít cestu k aplikaci




