Brug LDD kommando for at vise de delte biblioteker, der kræves af et givet program - nyttigt til at træne ud, når der mangler afhængighed. Kommandoen indeholder også manglende funktioner og objekter.
ldd Command Syntax
Overhold den korrekte syntaks for kommandoen ldd for at undgå fejl:
ldd OPTION … FIL …
Brug en eller flere af de ledige ldd kommandokontakter, der er indsat i MULIGHED stedet i ovennævnte kommando: --hjælp | Udskriv denne hjælp og afslut --version | print version information og exit -d, - data-relocs | behandle dataoverførsler -r, - funktion-relocs | behandle data og funktionsflytninger -u, --unbrugt | udskrive ubrugte direkte afhængigheder -v, --verbose | Udskriv alle oplysninger Udfør følgende kommando for at få flere oplysninger om et program: $ ldd -v / path / to / program / executable
Udgangen viser versionsinformation samt stier og adresser til de delte biblioteker, som denne: $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Hvis SO-filen slet ikke findes, kan du finde de manglende biblioteker ved hjælp af følgende kommando: $ ldd -d sti / til / program
Udgangen svarer til følgende: linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => ikke foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
Kør aldrig ldd-kommandoen mod et usikkert program, da ldd faktisk kan udføre det. Brug i stedet et sikrere alternativ, der kun viser de direkte afhængigheder og ikke hele afhængigheds træet: $ objdump -p / path / to / program | grep nødvendig Du skal give den fulde sti til en applikation, hvis du vil finde sine afhængigheder med ldd, som du kan gøre på flere måder. For eksempel, sådan kan du finde stien til Firefox: $ find / -name firefox
Problemet med find-kommandoen er imidlertid, at det ikke kun vil liste den eksekverbare, men overalt, at Firefox er placeret, sådan: Denne tilgang er lidt af en overkill, og du skal muligvis bruge sudo-kommandoen til at hæve dine privilegier, ellers får du sandsynligvis mange tilladelsesfornægtede fejl. Det er i stedet meget lettere at bruge kommandoen whereis til at finde en applikations sti: $ hvor er firefox
Denne gang kan udgangen se sådan ud: / Usr / bin / firefox / Etc / firefox / Usr / lib / firefox Alt hvad du skal gøre nu for at finde de delte biblioteker til Firefox, er at skrive følgende kommando: $ ldd / usr / bin / firefox
Udgangen fra kommandoen vil være sådan noget: 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 er bibliotekets navn, og hex-nummeret er adressen, hvor biblioteket skal indlæses i hukommelsen. Du vil bemærke på mange af de andre linjer, at symbolet => efterfølges af en sti. Dette er vejen til det fysiske binære; hex-nummeret er adressen, hvor biblioteket skal læses. Sådan bruges ldd-kommandoen
Sådan finder du stien til et program