Benotzt de "ldd" Command an Linux

De Kommando ldd kann benotzt ginn fir Iech déi gemeinsam Partneren ze weisen, déi vun engem gegebene Programm gefrot ginn.

Dëst ass nëtzlech fir ze schaffen, wann et eng fehlend Abhängegkeet gëtt an et kann benotzt ginn fir fehlend Funktiounen an Objeten ze listen.

ldd Command Syntax

Dëst ass déi richteg Syntax wann Dir de ldd Kommando benotzt:

ldd [OPTION] ... FÄLL ...

Hei sinn d'verfügbare ldd Kommandschalter, déi an den [OPTION] Fleck am obengenannten Kommando setzen kënnen:

--help drucken dës Hëllef a réckgängegen - drucken printversioun informéieren an exit -d, -data-relocs Prozessverlagerungen -r, --function-relocs Prozessprozeduren a Funktiounsverléisungen -u, --onutztem net gedréckt direkten Dependenzen -v, - verbose all Informatioun drécken

Wéi benotzt de ldd Command

Dir kënnt de nächste Kommando benotze fir méi Informatiounen aus engem ldd Kommando ze kréien:

ldd -v / weg / zu / programm / ausféierbar

D'Output weist d'Versiounsinformation wéi och d'Weeër a Adressen un de gemeinsame Bibliothéiken, wéi:

ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)

Wann d'SO-Datei guer net existéiert, fannt Dir déi fehlend Bibliothéiken mat dem folgendem Kommando:

ldd -d Wee / to / Programm

D'Ausgab ass ähnlech wéi déi folgend:

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

Wichteg: Fëllt d ​​'ldd Kommando géint e onvertrauwene Programm, well de Kommando wierklech ausféieren kënnt. Dëst ass eng sécher Alternative, déi nëmmen déi direkt Abhängegkeet a net de ganze Dependenzaam weist: objdump -p / path / to / programm | grep NEEDED .

Wéi Dir de Wee zu enger Applikatioun fannt

Dir musst de komplette Wee fir eng Applikatioun ubidden, wann Dir hir Abhängingen mat ldd fannt an Dir kënnt e puer Weeër fannen.

Zum Beispill, dat ass wéi Dir den Wee fir Firefox fonnt huet :

fannen / nom Numm firefox

De Problem mat dem Find Command ass awer datt et net nëmmen déi ausführbar Lëscht gëtt, mee iwwerall, wou Firefox lokaliséiert ass, wéi dëst:

Dës Approche ass e bësse vun engem Iwwerkill. Dir musst de sudo Kommando benotze fir Är Privilegie opzeschaffen, och Dir kënnt wahrscheinlech e puer Permissiounen erleedegen.

Et ass awer vill méi einfach, de Whereis Kommando ze benotzen fir de Wee vum Wee ze fannen:

vu woufir Firefox

Dës Kéier kann d'Ausgab kucken:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Alles wat Dir elo maachen muss fir d'gemeinsam Partneren fir Firefox ze fannen fannen de typeschen Kommando:

ldd / usr / bin / firefox

D'Ausgab vum Kommando wäre sou eppes:

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)

De Linux-vdso.so.1 ass den Numm vun der Bibliothéik an d'Hex Nummer ass d'Adress wou d'Bibliothéik fir Erënnerung gelueden gëtt.

Dir kënnt op ville vun den anere Linnen kucken datt den => Symbol geet mat engem Wee. Dëst ass de Wee zu der physescher binärer; D'Hex Nummer ass d'Adress wou d'Bibliothéik geladen ass.