Sèvi ak "ldd" Kòmandman an nan Linux

Ou ka itilize lòd ldd la pou montre ou bibliyotèk yo pataje pou tout pwogram yo bay yo.

Sa a se itil pou travay deyò lè gen yon depandans ki manke epi yo ka itilize nan lis fonksyon ki manke ak objè yo.

ldd Kòmandman Sentaks

Sa a se sentaks apwopriye a lè l sèvi avèk lòd la ldd:

ldd [OPSYON] ... DOSYE ...

Isit la yo se switch yo lòd LDD ki ka mete nan plas nan [OPSYON] nan lòd ki anwo a:

- ede enprime èd sa a ak sòti - version enprime vèsyon enfòmasyon ak sòti -d, -data-relocs pwosesis done relokasyon -r, - fonksyon-relocs done pwosesis ak demenajman fonksyon -u, - itilize enprime rès depandans dirèk -V, --verbose enprime tout enfòmasyon

KOUMAN POU SÈVI AK lòd la ldd

Ou ka itilize lòd sa a pou jwenn plis enfòmasyon nan nenpòt lòd ldd:

ldd -v / chemen / a / pwogram / ègzèkutabl

Pwodiksyon an montre enfòmasyon vèsyon kòm byen ke chemen yo ak adrès nan bibliyotèk yo pataje, tankou sa a:

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

Si dosye a SO pa egziste nan tout, ou ka jwenn bibliyotèk ki manke yo lè l sèvi avèk lòd sa a:

ldd -d chemen / pou / pwogram

Pwodiksyon an se menm jan ak sa ki annapre yo:

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

Enpòtan: Pa janm kouri kòmandman an ldd kont yon pwogram untrusted depi kòmandan an ta ka aktyèlman egzekite li. Sa a se yon altènatif ki pi an sekirite ki montre jis depandans yo dirèk epi yo pa tout depandans pye bwa a: objdump -p / chemen / a / pwogram | grep NEEDED .

Ki jan yo jwenn chemen an nan yon aplikasyon

Ou gen bay chemen an plen nan yon aplikasyon si ou vle jwenn depandans li yo ak ldd, ki ou ka fè yon kantite fason.

Pou egzanp, sa a se ki jan ou ta jwenn chemen an Firefox :

jwenn / -name firefox

Pwoblèm nan ak lòd la jwenn , sepandan, se ke li pa pral sèlman lis ègzèkutabl a, men toupatou ke Firefox a sitiye, tankou sa a:

Apwòch sa a se yon ti jan nan yon overkill ak ou ka bezwen sèvi ak lòd sudo nan elve privilèj ou, lòt bagay ou gen plis chans yo ka resevwa anpil pèmisyon erè.

Li nan olye pi fasil yo sèvi ak kòmandman an whereis jwenn chemen yon aplikasyon an:

kote firefox

Fwa sa a pwodiksyon an ta ka sanble tankou sa a:

/ usr / bin / firefox

/ elatriye / firefox

/ usr / lib / firefox

Tout sa ou dwe fè kounye a pou jwenn bibliyotèk yo pataje pou Firefox se tape lòd sa a:

ldd / usr / bin / firefox

Pwodiksyon an soti nan lòd la pral yon bagay tankou sa a:

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)

Linux-vdso.so.1 a se non bibliyotèk la ak nimewo ègzagonal la se adrès kote bibliyotèk la pral chaje nan memwa.

Ou pral remake sou anpil nan liy ki lòt ki senbòl la => ki te swiv pa yon chemen. Sa a se chemen an nan binè fizik la; nimewo a hex se adrès ki kote yo pral chaje bibliyotèk la.