Paggamit sa "ldd" Command sa Linux

Ang ldd nga sugo mahimo nga gamiton aron ipakita kanimo ang mga librarya nga gipaambit nga gikinahanglan sa bisan unsang programa.

Kini mapuslanon sa pagtrabaho kon adunay nawala nga pagsalig ug mahimong gamiton sa paglista sa nawala nga mga gimbuhaton ug mga butang.

ldd Command Syntax

Kini ang tukmang syntax sa paggamit sa ldd command:

ldd [OPTION] ... FILE ...

Ania ang anaa nga ldd command switch nga mahimong ibutang sa [OPTION] nga dapit sa sugo sa ibabaw:

--Tabang sa pag-print kini nga tabang ug exit - paglihok print nga bersyon nga impormasyon ug exit -d, --data-relocs proseso data relocation -r, -function-relocs pagproseso sa datos ug nagalihok relocation -u, -nag-imprinta nga wala magamit nga direkta nga dependensya -v, - isulat ang tanan nga impormasyon

Unsaon Paggamit ang ldd Command

Mahimo nimong gamiton ang mosunod nga sugo aron makakuha og daghang kasayuran gikan sa bisan unsang ldd command:

ldd -v / path / to / program / executable

Ang output nagpakita sa bersyon nga kasayuran ingon man usab sa mga dalan ug mga address ngadto sa mga shared library, sama niini:

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

Kung ang SO file wala gayud maglungtad, imong makita ang nawala nga mga librarya gamit ang mosunod nga sugo:

ldd -d path / to / program

Ang output susama sa mosunod:

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)

Mahinungdanon: Dili gayud ipatuman ang ldd nga mando batok sa usa ka dili matrabaho nga programa tungod kay ang kamandoan tingali mopatuman niini. Kini usa ka luwas nga alternatibo nga nagpakita lamang sa mga direktang dependensya ug dili sa tibuok nga dependency tree: objdump -p / path / to / program | GIKINAHANGLAN .

Unsaon sa Pagpangita sa Dalan sa Usa ka Paggamit

Kinahanglan mo nga ihatag ang bug-os nga dalan sa usa ka aplikasyon kon gusto nimo nga makit-an ang dependensya niini sa ldd, nga mahimo nimo ang daghang mga paagi.

Pananglitan, kini ang paagi nga imong makita ang dalan sa Firefox :

pangita / -name firefox

Ang sulud sa nakakaplag nga sugo , bisan pa, mao nga kini dili lamang maglista sa mga executable apan bisan asa nga nahimutang ang Firefox, sama niini:

Kini nga pamaagi mao ang usa ka gamay sa usa ka overkill ug ikaw mahimo nga kinahanglan nga gamiton ang sudo nga sugo aron sa pagpataas sa imong mga pribilehiyo, kon ikaw lagmit nga adunay daghan nga pagtugot nga gipanghimakak sa mga kasaypanan.

Hinuon mas sayon ​​ang paggamit sa diin ang sugo sa pagpangita sa dalan sa aplikasyon:

diin ang firefox

Niining higayona ang resulta mahimong ingon niini:

/ usr / bin / firefox

/ etc / firefox

/ usr / lib / firefox

Ang tanan nga imong buhaton karon aron makita ang mga librarya nga gigamit alang sa Firefox mao ang pag-type sa mosunod nga sugo:

ldd / usr / bin / firefox

Ang output gikan sa sugo mahimong ingon niini:

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)

Ang linux-vdso.so.1 mao ang ngalan sa librarya ug ang numero sa hex mao ang adres diin ang librarya i-load sa memorya.

Makita nimo ang daghang mga linya nga ang simbolo gisundan sa usa ka dalan. Mao kini ang dalan sa pisikal nga binary; ang numero sa hex mao ang address diin ang librarya i-load.