Príkaz ldd sa môže použiť na zobrazenie zdieľaných knižníc požadovaných daným programom.
To je užitočné pri práci, keď je chýbajúca závislosť a môže sa použiť na vypísanie chýbajúcich funkcií a objektov.
ldd Syntax príkazov
Toto je správna syntax pri použití príkazu ldd:
ldd [OPTION] ... FILE ...Tu sú dostupné príkazy ldd, ktoré je možné vložiť do miesta [OPTION] vo vyššie uvedenom príkaze:
- help vytiahnuť túto pomoc a skončiť - verziu vytlačiť informácie o verzii a ukončit -d, --data-relocs spracovanie dátových premiestnení -r, --function-relocs spracovanie údajov a funkcií relokácie -u, --unused tlač nepoužívaných priamych závislostí -v, --verbose vytlačiť všetky informácieAko používať príkaz ldd
Môžete použiť nasledujúci príkaz na získanie ďalších informácií z ľubovoľného príkazu ldd:
ldd -v / cesta / do / program / spustiteľnýVýstup zobrazuje informácie o verzii, ako aj cesty a adresy do zdieľaných knižníc, naprí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)Ak súbor SO neexistuje vôbec, chýbajúce knižnice nájdete pomocou nasledujúceho príkazu:
ldd -d path / to / programVýstup je podobný nasledujúcemu:
linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => nie je foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)Dôležité: Nikdy nespúšťajte príkaz ldd proti nedôveryhodnému programu, pretože príkaz by ho mohol skutočne spustiť. Je to bezpečnejšia alternatíva, ktorá ukazuje iba priame závislosti a nie celý strom závislosti: objdump -p / path / to / program | grep POTREBNÉ .
Ako nájsť cestu k aplikácii
Musíte poskytnúť úplnú cestu k aplikácii, ak chcete nájsť jej závislosti s ldd, čo môžete urobiť viacerými spôsobmi.
Napríklad takto nájdete cestu k Firefoxu :
nájsť / -name firefoxProblém s príkazom nájsť však je, že nebude obsahovať len spustiteľný súbor, ale všade, kde sa nachádza Firefox, a to takto:
- /etc/skel/.mozilla/firefox
- / Home // cache / mozilla / firefox
- /home//.mozilla/firefox
- / Usr / bin / Firefox
- / Usr / lib / Firefox
- / Usr / lib / Firefox / Firefox
Tento prístup je trochu prehnaný a možno budete musieť použiť sudo príkaz zvýšiť svoje privilégiá, inak je pravdepodobné, že dostanete veľa zamietnutých oprávnení chyby.
Namiesto toho je oveľa jednoduchšie použiť príkaz ifis na nájdenie cesty aplikácie:
whereis firefoxTentokrát výstup môže vyzerať takto:
/ Usr / bin / firefox
/ Etc / firefox
/ Usr / lib / firefox
Všetko, čo musíte urobiť, ak chcete nájsť zdieľané knižnice pre Firefox, je zadajte nasledujúci príkaz:
ldd / usr / bin / firefoxVýstup z príkazu bude takýto:
linux-vdso.so.1 (0x00007ffff8364000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)
libstdc ++ .to.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ázov knižnice a hexadecimálne číslo je adresa, do ktorej bude knižnica načítaná do pamäte.
Na mnohých ďalších riadkoch si všimnete, že po symbole => nasleduje cesta. Toto je cesta k fyzickej binárne; hexadecimálnym číslom je adresa, na ktorej bude knižnica načítaná.