Folosește LDD comandă pentru a afișa bibliotecile partajate necesare unui anumit program - util pentru a lucra când există o dependență lipsă. De asemenea, comanda listează funcțiile și obiectele care lipsesc.
ldd Command Sintaxă
Observați sintaxa potrivită pentru comanda ldd pentru a evita erorile:
ldd OPTION … FILE …
Utilizați una sau mai multe dintre comenzile de comandă ldd disponibile, inserate în OPȚIUNE spot în comanda de mai sus: - ajutor | tipăriți acest ajutor și ieșiți --versiune tipăriți informațiile despre versiuni și ieșiți -d, --data-relocs | procesul de relocare a datelor -r, - funcții-relocări transferul de date și funcții -u, - nefolosit | imprimă dependențe directe neutilizate -v, --verbose | tipăriți toate informațiile Executați următoarea comandă pentru a obține mai multe informații despre un program: $ ldd -v / cale / la / program / executabil
Ieșirea prezintă informații despre versiune, precum și căile și adresele pentru bibliotecile partajate, cum ar fi: $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Dacă fișierul SO nu există deloc, puteți găsi librăriile lipsă utilizând următoarea comandă: $ ldd -d path / to / program
Ieșirea este similară cu următoarea: linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => not foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
Nu executați niciodată comanda ldd împotriva unui program de încredere, deoarece ldd ar putea să-l execute. În schimb, utilizați o alternativă mai sigură care arată doar dependențele directe și nu întregul arbore de dependență: $ objdump -p / calea / spre / program grep NEVOIE Trebuie să oferiți calea completă la o aplicație dacă doriți să găsiți dependențele sale cu ldd, pe care le puteți face în mai multe moduri. De exemplu, așa veți găsi calea către Firefox: $ find / -name firefox
Problema cu comanda de găsire, totuși, este că nu va lista doar fișierul executabil, ci peste tot unde este localizat Firefox, după cum urmează: Această abordare este un pic de depășire și este posibil să fie nevoie să utilizați comanda sudo pentru a vă ridica privilegiile, altfel este posibil să obțineți o mulțime de erori refuzate de permisiune. În schimb, este mult mai ușor să utilizați comanda whereis pentru a găsi calea unei aplicații: $ whereis firefox
De data aceasta, ieșirea poate arăta astfel: / Usr / bin / firefox / Etc / firefox / Usr / lib / firefox Tot ce trebuie să faceți acum pentru a găsi bibliotecile partajate pentru Firefox este să tastați următoarea comandă: $ ldd / usr / bin / firefox
Ieșirea din comandă va fi ceva de genul: 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 este numele bibliotecii iar numărul hexazecimal este adresa unde va fi încărcată biblioteca în memorie. Veți observa pe multe din celelalte linii că simbolul => este urmat de o cale. Aceasta este calea către binarul fizic; numarul hex este adresa unde se va incarca biblioteca. Cum se utilizează comanda ldd
Cum să găsiți calea către o aplicație