Aflați gestionarea dependențelor folosind comanda ldd pentru a vă administra mai bine mașina Linux și pachetele instalate.
Gestionarea dependențelor este o parte integrantă a menținerii sistemului dumneavoastră Linux. Software-ul este complex și se bazează pe o multitudine de biblioteci și fișiere partajate. Uneori, devine greu să urmăriți fișierele solicitate de o aplicație.
Aici intervine comanda ldd pe Linux. ldd este un instrument de linie de comandă plin de resurse pentru a urmări dependențele de obiecte partajate cerute de o aplicație.
Să învățăm cum poți folosi comanda ldd în avantajul tău și să devii un profesionist în gestionarea dependențelor de pe Linux!
Ce sunt dependențele pachetelor?
Software-ul nu este doar un cod sursă independent, ci mai degrabă o combinație de cod sursă nativ și cod împrumutat de la biblioteci externe. Când aceste biblioteci și alte obiecte partajate lipsesc din sistemul dvs., o aplicație care depinde de ele poate să funcționeze defectuos sau chiar să refuze lansarea.
Toate aceste fișiere partajate, pachete, biblioteci etc., sunt numite cumulativ dependențe de Linux. Deși această scurtă definiție vă oferă o idee aproximativă despre dependențe, imaginea reală este puțin mai complexă decât atât și de aceea este important să învățați ce dependențe de pachet sunt în profunzime.
Ce este comanda ldd și cum funcționează?
ldd este o abreviere pentru List Dynamic Dependencies. După cum sugerează și numele, ldd listează toate obiectele partajate necesare unei aplicații.
Funcționează prin invocarea linkerului dinamic cu un set special variabile de mediu. Când rulați ldd cu locația unui binar, returnează o ieșire care conține lista de dependențe, locația acestora și o valoare hexazecimală reprezentând locul în care sunt încărcate în memorie.
Găsirea dependențelor obiectelor partajate cu comanda ldd
Acum că aveți o idee clară despre ce este ldd, haideți să ne punem în practică și să aflăm cum puteți găsi dependențe de software cu el.
Înainte de a învăța cum să utilizați ldd, mai întâi, confirmați dacă îl aveți instalat pe sistemul dvs. prin imprimarea versiunii instalate de ldd:
ldd --versiune
Dacă se întoarce o eroare „comandă nu a fost găsită”., mai întâi trebuie să instalați ldd.
Pe sistemele bazate pe Ubuntu și Debian, rulați:
sudo apt install libc-bin
Pentru distribuțiile bazate pe Arch:
sudo pacman -S glibc
Pe RHEL și Fedora:
sudo dnf install glibc-common
Cu ldd instalat, vă puteți concentra acum pe a învăța cum să îl utilizați. Iată sintaxa de bază pentru comanda ldd:
ldd locație_binară
În cazul în care nu cunoașteți locația binarului, puteți utiliza unul dintre mulți operatori de linie de comandă Linux și combinați rezultatul comenzii which cu ldd pentru a găsi dependențele pentru pachet:
ldd -flag $(care nume_binar)
Comanda ldd oferă patru opțiuni diferite pentru a modifica rezultatul. Sunt:
- -v: Imprimă rezultate detaliate, inclusiv informații suplimentare, cum ar fi informații despre versiune pentru fiecare dependență
- -u: Tipărește toate dependențele neutilizate, adică dependențele care sunt încărcate, dar nu sunt implementate
- -d: Imprimă obiectele lipsă și efectuează relocari
- -r: Imprimă obiectele și funcțiile lipsă și efectuează relocari
Gestionarea dependențelor pachetelor pe Linux
Cu ldd în arsenalul dvs. de software, veți putea depana problemele legate de dependența de obiecte partajate cu aplicația dvs.
Mai mult, deoarece ldd indică și locația în care este încărcată o bibliotecă, veți putea să depanați o aplicație și să înțelegeți mai bine cum este implementată o anumită bibliotecă. ldd tipărește, de asemenea, versiunile bibliotecilor partajate utilizate într-o aplicație.
Folosind această caracteristică, vă puteți audita aplicațiile pentru eventualele vulnerabilități asociate cu o versiune învechită a unei biblioteci partajate.
Gestionarea dependenței este o abilitate de bază care este crucială pentru a vă menține sistemul Linux sănătos. Cu toate acestea, uneori, un pachet se poate rupe, în ciuda faptului că toate dependențele sale sunt sănătoase. Este important să știți cum să găsiți și să reparați pachetele sparte.