Upotreba naredbe "ldd" u Linuxu

Ldd naredba može se koristiti za prikazivanje zajedničkih knjižnica koje zahtijeva bilo koji program.

To je korisno za izvođenje kada postoji nestalna ovisnost i može se koristiti za popis funkcija i objekata koji nedostaju.

ldd Sintaksa naredbi

Ovo je ispravna sintaksa kada koristite naredbu ldd:

ldd [OPTION] ... FILE ...

Evo dostupnih ldd naredbi koje se mogu umetnuti u [OPTION] točku u gornjoj naredbi:

- pomoć ispisati ovu pomoć i izlaz - verzija informacije o inačici ispisa i izlaz -d, --podataka podataka o preseljenju procesnih podataka -r, --funkcija-relocs procesnih podataka i premještanja funkcija -u, - neiskorišten ispis neiskorištenih izravnih zavisnosti -v, --verbose ispisati sve informacije

Kako koristiti ldd naredbu

Možete upotrijebiti sljedeću naredbu da biste dobili više informacija iz bilo koje naredbe ldd:

ldd -v / put / u / program / izvršnu datoteku

Izlaz prikazuje informacije o verziji, kao i putove i adrese u dijeljene biblioteke, 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, knjižnice koje nedostaju možete pronaći pomoću sljedeće naredbe:

ldd -d put / u / program

Izlaz je sličan sljedećem:

linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ​​nije foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)

Važno: Nikad nemojte pokrenuti ldd naredbu protiv nepouzdanog programa jer naredba zapravo može izvršiti. Ovo je sigurnija alternativa koja pokazuje samo izravne zavisnosti, a ne čitav stablo ovisnosti: objdump -p / put / to / program | POTREBAN .

Kako pronaći putanju aplikaciji

Morate osigurati puni put do aplikacije ako želite pronaći svoje ovisnosti s ldd, što možete učiniti na više načina.

Na primjer, na taj ćete način pronaći put do Firefoxa :

pronađi / -name firefox

Problem s naredbom za pronalaženje je , međutim, da neće samo popisati izvršnu već i svugdje gdje se nalazi Firefox, ovako:

Ovaj je pristup malo prekoračenja i možda ćete morati koristiti sudo naredbu za podizanje svojih privilegija, inače ste vjerojatno dobili puno dopuštenja odbijenih pogrešaka.

Umjesto toga je mnogo lakše koristiti naredbu whereis da pronađe put programa:

gdje je krijesnica

Ovaj put izlaz može izgledati ovako:

/ usr / bin / krijesnica

/ etc / krijesnica

/ usr / lib / krijesnica

Sve što morate učiniti da biste pronašli zajedničke knjižnice za Firefox upišite sljedeću naredbu:

ldd / usr / bin / firefox

Izlaz iz naredbe bit će 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 naziv biblioteke, a heksadecimalni broj je adresa na kojoj će se knjižnica učitati u memoriju.

Na mnogim drugim redovima primijetit ćete da je simbol => slijedi put. Ovo je put do fizičkog binarnog; heksadecimalni broj je adresa na kojoj će biti učitana knjižnica.