Ldd komanda se može koristiti da vam pokaže dijeljene biblioteke potrebne za bilo koji program.
Ovo je korisno za rad kada postoji nedostatak zavisnosti i može se koristiti za popis nestalih funkcija i objekata.
ldd Command Syntax
Ovo je ispravna sintaksa kada koristite ldd naredbu:
ldd [OPTION] ... FILE ...Ovde su dostupni ldd komandni prekidači koji se mogu ubaciti u mjesto [OPTION] u gornjoj komandi:
-help odštampati ovu pomoć i izaći - informacije o verziji za štampu i izlaz -d, -data-relocs relacije podataka procesa -r, -funkcionalni-relokacioni podaci procesa i relokacije funkcija -u, - neupotrebljeni ispis neiskorištene direktne zavisnosti -v, --verite sve informacijeKako koristiti ldd komandu
Možete koristiti sljedeću naredbu da biste dobili više informacija iz bilo koje komande ldd:
ldd -v / put / do / program / izvršniIzlaz prikazuje informacije o verziji, kao i puteve i adrese u deljenim bibliotekama, ovako:
ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)Ako SO datoteka uopće ne postoji, možete pronaći nedostajuće biblioteke koristeći sljedeću naredbu:
ldd -d put / do / programIzlaz je sličan sledećem:
linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => nije pronađen libc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)Važno: Nikada ne pokrećite ldd komandu protiv nepouzdanog programa, jer bi komanda mogla da je izvrši. Ovo je sigurnija alternativa koja pokazuje samo direktne zavisnosti, a ne cijelo zavisno drvo: objdump -p / path / to / program | grep NEEDED .
Kako pronaći put do aplikacije
Morate osigurati punu putanju do neke aplikacije ako želite pronaći njegove zavisnosti sa ldd-om, što možete učiniti na više načina.
Na primjer, ovako ćete pronaći put do Firefoxa :
pronađi / -name firefoxProblem sa naredbom za pronalazak je , međutim, da će ne samo popisati izvršnu datoteku, već svugdje gdje se Firefox nalazi, ovako:
- /etc/skel/.mozilla/firefox
- / home // cache / mozilla / firefox
- /home//.mozilla/firefox
- / usr / bin / Firefox
- / usr / lib / Firefox
- / usr / lib / Firefox / Firefox
Ovaj pristup je malo prekomjeran i možda ćete morati da koristite komandu sudo da biste podigli svoje privilegije, u suprotnom ćete verovatno dobiti puno grešaka koje dozvoljavate dozvolu.
Umjesto toga, mnogo je lakše koristiti komandu whereis kako bi pronašla putanju aplikacije:
whereis firefoxOvog puta izlaz bi mogao izgledati ovako:
/ usr / bin / firefox
/ etc / firefox
/ usr / lib / firefox
Sve što sada treba da uradite da pronađete deljene biblioteke za Firefox je ukucati sljedeću naredbu:
ldd / usr / bin / firefoxIzlaz iz naredbe biće nešto ovako:
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 ime biblioteke, a heks broj je adresa na kojoj će se biblioteka učitati u memoriji.
Na mnogim drugim linijama ćete primetiti da simbol => sledi putanja. Ovo je put do fizičke binarne; broj hexa je adresa u kojoj će biblioteka biti učitana.