It kommando ldd kin brûkt wurde om jo de dielde libraries sjen te litten dy't nedich binne troch elke opjûne programma.
Dit is handich foar it útfieren as der in ûntbrekkende ôfhinging is en kinne brûkt wurde om fûnen fan funksjes en objekten te lizzen.
ldd Kommando Syntaks
Dit is de goede syntaks by it brûken fan it ldd kommando:
ldd [OPTION] ... FILE ...Hjir binne de beskikbere ldd-kommando-skeakels dy't yn it [boppekant] plak ynfierd wurde yn it boppeste kommando:
--helje dizze help en útfiere - ferzje fan ferzje fan ferzje-ynformaasje en útgong -d, -data-relocs-ferwurkingsgegevens -arrings -r, -funksjonele relocs-ferwurkingsgegevens en funksjonearings relaasjes -u, -unûntwurde print net brûkte streekôfhinklikens -v, - verbose alle ynformaasje opHoe kinne jo de ldd-kommando brûke
Jo kinne it folgjende kommando brûke om mear ynformaasje te krijen fan in ldd kommando:
ldd -v / path / to / programma / útfierberDe útfier lit ferzjesynformaasje as de paden en adressen sjen nei de dielde biblioteken, sa as dit:
ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)As de SO-bestân hielendal net bestiet, kinne jo de fereaske biblioteken fine mei it folgjende kommando:
ldd -d paad / nei / programmaDe útfier is te fergelykjen mei de neikommende:
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)Wichtich: Folslein it ldd-kommando tsjin in ûntrêstich programma útfiere, omdat it kommando dat effekt hat. Dit is in feiliger alternatyf dy't allinich de direkte ôfhinklikens en net de folsleine ôfhinklikbaai sjen lit: objdump -p / path / to / programma | grep NEEDED .
Hoe kinne de paad in applikaasje fine
Jo moatte de folsleine paad oan in applikaasje oanbiede as jo har ôfhingingen fine mei ldd, dy't jo in oantal manieren dwaan kinne.
Sa is bygelyks hoe't jo de punt nei Firefox fine koenen :
Sykje / -namme firefoxIt probleem mei it fûn kommando lykwols is dat it net allinich de útfierber litte wol, mar oeral dêr't Firefox sit, sa as dit:
- /etc/skel/.mozilla/firefox
- / home // cache / mozilla / firefox
- /home//.mozilla/firefox
- / usr / bin / Firefox
- / usr / lib / Firefox
- / usr / lib / Firefox / Firefox
Dizze oanpak is in bytsje fan in overkill en jo moatte it sudo kommando brûke om jo privileezjes te ferheegjen, oars kinne jo wierskynlik in soad fergunning ferwege.
It is dan folle makliker om it kommando wêr gebrûk te meitsjen om it paad fan in applikaasje te finen:
wêr is firefoxOp dit momint kin de útfier folgje:
/ usr / bin / firefox
/ etc / firefox
/ usr / lib / firefox
Alles wat jo no dwaan wolle om de dielde biblioteken foar Firefox te finen is it type kommando te typen:
ldd / usr / bin / firefoxDe útfier út it kommando sil dus sa wêze:
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 is de namme fan 'e bibleteek en it heksnûmer is itadres wêr' t de biblioteek ynladen is.
Jo sille op in soad fan de oare linen sjen dat it => symboal folge wurdt troch in paad. Dit is it paad nei de fysike binary; it hex nûmer is it adres wêryn de biblioteek wurde laden.