cum se utilizează comanda LDD în Linux
vă întrebați cum să utilizați comanda LDD în Linux?
Linux oferă o flexibilitate amplă, deoarece vă permite să vă reglați sistemul în funcție de nevoile dvs. Asta înseamnă că puteți opera cu ușurință sistemul dvs. prin Terminal. Mai mult, puteți controla diverși parametri și puteți verifica fișierele partajate și utilizate de diferite programe din sistemul dvs.
o comandă, în special, vă permite să recunoașteți bibliotecile utilizate de un anumit program aflat în inspecție. Aceasta este comanda LDD dezvoltată de Roland McGrath și Ulrich Drepper.
LDD (listă dependențe dinamice) facilitează utilizatorului să identifice dependențele bibliotecă care sunt partajate între diferite fișiere executabile.
acest ghid vă va ajuta să învățați cum să utilizați comanda LDD în Linux.
deci, fără alte întrebări, să începem!
tipuri de biblioteci.
o bibliotecă este un set bine definit de funcții, obiecte, variabile, clase, specificații de tip, condiții și subrutine care dictează operațiunile fișierelor și programelor, fără a fi nevoie să mențină codul sursă.
există trei tipuri de biblioteci:
- biblioteci dinamice: acestea sunt biblioteci utilizate de programe care sunt compilate la o scară mai mică. După cum sugerează și numele, este încărcat dinamic în momentul execuției, astfel încât o singură copie este utilizată dinamic pentru a rula mai multe programe.
aceasta reduce consumul de memorie, reducând astfel dimensiunea programului și îmbunătățind performanța. De obicei au extensii” .so
“.
- biblioteci statice: aceste biblioteci sunt utilizate de programe complete. Acestea leagă programele fără a recompila codul sursă, economisind astfel timp. Aceste biblioteci sunt incluse separat în fișierele de program care necesită funcțiile sale. Acestea sunt de obicei urmate de o extensie “
.a
“. - biblioteci partajate: acestea sunt biblioteci instalate individual, care sunt utilizate automat de programe la rate. Acestea pot suprascrie anumite părți ale unei biblioteci preexistente atunci când programul îndeplinește anumite sarcini. În plus, acestea pot fi utilizate în timpul rulării cu codul nostru sau cu un program.
majoritatea fișierelor executabile pe care le folosim zilnic conțin biblioteci partajate. Comanda LDD listează dependențele dinamice ale bibliotecii. Aceste biblioteci sunt reutilizate și partajate între programe pentru a ușura dezvoltarea programelor și pentru a reduce dimensiunea și încărcarea acestora în memoria computerului.
în Linux, aceste fișiere sunt sub forma unei extensii “.so
” și sunt stocate în /usr/lib*
sau pur și simplu /lib*
.
diverse distribuții ale sistemelor Linux pot împacheta un set diferit de biblioteci pentru un program, făcându-l să funcționeze diferit pe diferite versiuni ale sistemului de operare. Când o bibliotecă partajată pentru un program nu este disponibilă în sistemul dvs., primiți o eroare care poate arăta astfel:
Sudo: error while loading shared libraries: libpthread.so.0:Cannot open shared object file: no such file or directory.
putem verifica apoi bibliotecile partajate pentru un anumit program folosind comanda LDD.
instalarea comenzii LDD.
comanda LDD este în mod inerent disponibilă în aproape fiecare distribuție Linux. În cazul în care nu este, puteți utiliza următoarea comandă pentru ao instala:
$ sudo apt-get install libc-bin
comanda $ ldd
are următoarea sintaxă:
$ ldd <options> <executable>
sau mai general:
$ ldd -v /path/to/program/executable
LDD este o comandă de bază, dar puternică. Acesta oferă ajutor și alte variante folosind diferite steaguri. Acestea sunt descrise pe scurt mai jos.
–version
: pentru a afișa versiunea ldd utilizată în prezent.
-v --verbose
: pentru a afișa informații complicat.
-u --unused
: pentru a afișa dependențele neutilizate.
-d --data-relocs
: pentru a muta și de a identifica obiectele lipsă.
-r --function-relocs
: pentru a muta obiectele și funcțiile de date, precum și pentru a identifica funcțiile sau obiectele lipsă.
–-help
: pentru a oferi ajutor cu privire la utilizarea comenzii.
folosind comanda LDD.
acum că ați finalizat instalarea, sunteți gata să învățați cum să utilizați comanda LDD în Linux. Vom demonstra acest lucru împreună cu modul în care ajută la identificarea bibliotecilor partajate.
vom analiza bibliotecile partajate pentru Bash, shell-ul standard pe Linux. Este responsabil pentru executarea comenzilor și furnizarea unei interfețe între utilizator și sistemul de operare.
pentru a utiliza comanda LDD, urmați acești pași:
- începeți prin deschiderea terminalului de comandă apăsând Ctrl + Alt + T de pe tastatură.
- Apoi, localizați calea folosind comanda
which
sauwhereis
urmată de comanda LDD tastând următoarele:
$ which bash$ whereis bash$ ldd /usr/bin/bash
după cum puteți vedea, dependențele bibliotecii partajate sunt vizibile. Pentru o prezentare detaliată și mai complicată, utilizați steagul -v
cu comanda $ ldd
după cum urmează:
$ ldd -v /usr/bin/bash
în mod similar, putem folosi steagul -u
pentru a afișa dependențele neutilizate.
$ ldd -u /usr/bin/bash
în cazul prezentat mai sus, nu există dependențe neutilizate. Este întotdeauna recomandat să păstrați filele pe care bibliotecile sunt inactive și consumă memorie. Dacă nu faceți acest lucru, vă puteți încărca nucleul cu fișiere neutilizate, împiedicând astfel performanța. Ar fi util să consultați articolul nostru despre cum să eliberați spațiu pe Ubuntu.
pentru relocările de date și funcții, folosim steagurile -d
și -r
respectiv alături de comanda $ ldd
.
$ ldd -d /usr/bin/bash$ ldd -r /usr/bin/bash
aceste steaguri ajută, de asemenea, la identificarea obiectelor și funcțiilor lipsă.
nu în ultimul rând, putem folosi steagul --help
pentru o consultare rapidă cu privire la steaguri și acțiunile lor respective.
limitări ale comenzii LDD.
trebuie remarcat faptul că comanda LDD nu va funcționa pe programe care nu sunt executabile dinamic, “a.out
” biblioteci partajate sau fișiere care sunt depășite sau au fost dezvoltate înainte de LDD a ieșit.
în cele din urmă, se recomandă ca comenzile LDD să nu fie utilizate cu surse de încredere, deoarece pot duce la erori și excepții abrupte.
pagina manuală pentru LDD sugerează o comandă alternativă care este compusă din utilitare objdump
și grep
.
~/$objdump -p /path/program/grep NEEDED
LDD este una dintre acele instrucțiuni subminate care, dacă sunt utilizate corect, pot face o diferență substanțială în interacțiunea dvs. cu sistemul de operare. Este o comandă puternică de legătură cu un scop specific și oferă cu siguranță. Pentru mai multe detalii despre comandă și utilizarea acesteia, puteți accesa pagina de manual pentru comanda LDD.
Leave a Reply