Ldd-käsku saab kasutada selleks, et näidata teile ühiskasutusse kuuluvaid teeke, mida iga konkreetne programm vajab.
See on kasulik töötamiseks, kui puudub puuduv sõltuvus ning seda saab kasutada puuduvate funktsioonide ja objektide loendamiseks.
ldd käsu süntaks
See on õige süntaks, kui kasutate ldd-käsku:
ldd [OPTION] ... FILE ...Siin on käskluslukud, mida saab sisestada eelmise käsu [OPTION] kohale:
--euge abi selle printimiseks ja väljuge --versioon printimisversiooni teavet ja väljumiseks -d, -data-relocs protsessi andmete ümberpaigutamine -r, -function-relocs protsessi andmed ja funktsioonide ümberpaigutamine -u, - unused print unused direct dependencies -v, --verbose prindi kogu teaveKuidas kasutada ldd käsku
Võite kasutada järgmist käsu, et saada lisateavet mis tahes ldd käsklusest:
ldd -v / path / to / program / executableVäljund näitab versiooniteavet, samuti jagatud teekide ja aadresside asukohti, näiteks järgmist:
ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)Kui SO-faili üldse ei eksisteeri, võite leida puuduvaid raamatukogusid, kasutades järgmist käsku:
ldd-d tee / to / programVäljund on sarnane järgmisega:
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)NB! Ärge kunagi käivitage ldd-käskt ebausaldusväärse programmi vastu, kuna käsk võib seda tegelikult käivitada. See on turvalisem alternatiiv, mis näitab vaid otseseid sõltuvusi, mitte kogu sõltuvuspuud: objdump -p / path / to / program | VAJUTUS .
Kuidas leida teed rakendusele
Rakenduse jaoks tuleb anda täielik tee, kui soovite leida oma sõltuvust ldd-st, mida saate teha mitmel viisil.
Näiteks on see, kuidas leida Firefoxi teed:
lei / -nimi firefoxKuid otsingu käsu probleemiks on see, et see ei sisalda mitte ainult käivitatavat faili, vaid kõikjal, kus Firefox asub, nagu see:
- /etc/skel/.mozilla/firefox
- / home // cache / mozilla / firefox
- /home//.mozilla/firefox
- / usr / bin / Firefox
- / usr / lib / Firefox
- / usr / lib / Firefox / Firefox
Selline lähenemine on natuke ülemäärane ja sulle võib-olla peate kasutama sudo käsku, et oma privileege tõsta, muidu võite tõenäoliselt saada palju lubasid eiratud vigu.
Selle asemel on palju lihtsam kasutada rakenduse tee leidmiseks käsku whereis :
kus on firefoxSeekord võib väljund olla selline:
/ usr / bin / firefox
/ etc / firefox
/ usr / lib / firefox
Kõik, mida peate nüüd Firefoxi jagatud teekide leidmiseks tegema, tuleb sisestada järgmine käsk:
ldd / usr / bin / firefoxKäsu väljund on midagi sellist:
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 on raamatukogu nimi ja hex-number on aadress, kus raamatukogu laaditakse mällu.
Teid märkate paljude teiste joonte puhul, et => sümbolile järgneb tee. See on füüsilise binaartee tee; hex-number on aadress, kuhu raamatukogu laaditakse.