Uża l-Kmand "ldd" fil-Linux

Il-kmand ldd jista 'jintuża biex juri l-libreriji kondiviżi meħtieġa minn kwalunkwe programm partikolari.

Dan huwa utli biex taħdem meta jkun hemm dipendenza nieqsa u tista 'tintuża biex telenka funzjonijiet u oġġetti nieqsa.

Sinjal ta 'Kmand tal-ldd

Din hija s- sintassi proprja meta tuża l-kmand ldd:

ldd [OPTION] ... FILE ...

Hawn huma l-swiċċijiet disponibbli tal-kmand tal-ldd li jistgħu jiddaħħlu fil-post [OPTION] fil-kmand ta 'hawn fuq:

- jgħinha tipprintja din l-għajnuna u ħruġ --verżjoni verżjoni stampata ta 'informazzjoni u ħruġ -d, --data-relocs proċess ta' rilokazzjonijiet ta 'data -r, --funzjoni-relocs proċess tad-data u rilokazzjonijiet tal-funzjoni -u, --ununzji stampati dipendenzi diretti mhux użati -v, --verbose tipprintja l-informazzjoni kollha

Kif tuża l-Kmand ldd

Tista 'tuża l-kmand li ġej biex tikseb aktar informazzjoni minn kwalunkwe kmand ldd:

ldd -v / path / to / program / executable

Ir-riżultat juri informazzjoni dwar il-verżjoni kif ukoll il-mogħdijiet u l-indirizzi għal-libreriji maqsuma, bħal dan:

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

Jekk il-fajl SO ma jeżistix, tista 'ssib il-libreriji nieqsa billi tuża l-kmand li ġej:

ldd -d path / to / program

L-output huwa simili għal dan li ġej:

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)

Importanti: Qatt m'għandek tmexxi l-kmand ldd kontra programm mhux affidabbli peress li l-kmand jista 'fil-fatt jesegwixxih. Din hija alternattiva aktar sikura li turi biss id-dipendenzi diretti u mhux is-siġra tad-dipendenza kollha: objdump -p / path / to / program | NEĦĦA

Kif issib il-path għal Applikazzjoni

Int għandek tipprovdi t-triq sħiħa għal applikazzjoni jekk trid issib id-dipendenzi tagħha b'ldd, li tista 'tagħmel numru ta' modi.

Per eżempju, dan huwa kif issib il-passaġġ għal Firefox :

isibu / -name firefox

Il-problema bil -kmand tas-sejba , madankollu, hija li mhux biss ser telenka l-eżekutibbli iżda kullimkien li Firefox tinsab, bħal dan:

Dan l-approċċ huwa daqsxejn ta 'eċċess u jista' jkollok bżonn tuża l -kmand sudo biex ittella 'l-privileġġi tiegħek, inkella int x'aktarx tikseb lottijiet ta' żbalji permessi miċħuda.

Minflok, huwa ħafna iktar faċli li tuża l- kmand fejn issib il-passaġġ ta 'applikazzjoni:

fejn hija Firefox

Din id-darba l-output jista 'jidher bħal dan:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Kulma għandek tagħmel issa biex issib il-libreriji kondiviżi għal Firefox huwa tat-tip il-kmand li ġej:

ldd / usr / bin / firefox

L-output mill-kmand se jkun xi ħaġa bħal din:

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)

Il-linux-vdso.so.1 huwa l-isem tal-librerija u n-numru tal-hex huwa l-indirizz fejn se tinġabar il-librerija fil-memorja.

Tinduna fuq ħafna mill-linji l-oħra li s-simbolu = = huwa segwit minn triq. Dan huwa t-triq għall-binarju fiżiku; in-numru tal-hex huwa l-indirizz fejn ser titgħabba l-librerija.