
Använd ldd kommando för att visa de delade biblioteken som krävs av ett visst program. Kommandot ldd är användbart för att träna när det saknas beroende. Kommandot listar också saknade funktioner och objekt.
ldd Kommandosyntax
Observera rätt syntax för kommandot ldd för att undvika fel: ldd [OPTION]… FIL …
Använd en eller flera av de tillgängliga ldd-kommandokontakterna, infogade i [OPTION] plats i ovanstående kommando:
- –help: Skriv ut den här hjälpen och avsluta.
- –version: Skriv ut versioninformation och avsluta.
- -d, –relocs: Processdataflyttningar.
- -r, –function-relocs: Processdata och funktionsflyttningar.
- -u, –unused: Skriv ut oanvända direktberoenden.
- -v, –verbose: Skriv ut all information.
Hur man använder ldd-kommandot
Utför följande kommando för att få mer information om ett program: ldd -v / sökväg / till / program / körbar
Utdata visar versioninformation samt sökvägar och adresser till de delade biblioteken, så här: libshared.so
linux-vdso.so.1 => (0x00007fff26ac8000)
libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000)
/lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Om SO-filen inte finns alls kan du hitta de saknade biblioteken med följande kommando: ldd -d sökväg / till / program
Utgången liknar följande: linux-vdso.so.1 (0x00007ffc2936b000)
/home/gary/demo/garylib.so => hittades intelibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000)
/lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
Kör aldrig ldd-kommandot mot ett otillförlitligt program eftersom ldd-kommandot kan utföra det. Använd istället ett säkrare alternativ som bara visar de direkta beroenden och inte hela beroendeträdet: objdump -p / path / to / program | grep BEHÖVS
Hur du hittar vägen till en applikation
Du måste ange hela sökvägen till en applikation om du vill hitta dess beroenden med ldd, vilket du kan göra på flera sätt. Så här hittar du till exempel sökvägen till Firefox: hitta / -namn firefox
Problemet med find-kommandot är dock att det listar den körbara och överallt där Firefox finns, så här: /etc/skel/.mozilla/firefox
/ hem // cache / mozilla / firefox
/home//.mozilla/firefox
/ usr / bin / Firefox
/ usr / lib / Firefox
/ usr / lib / Firefox / Firefox
Det här tillvägagångssättet är lite överdrivet och du kan behöva använda sudo-kommandot för att höja dina privilegier, annars kommer du troligen att få man tillåtelse-nekade fel. Det är istället lättare att använda kommandot whereis för att hitta en applikations sökväg: var är Firefox
Den här gången kan utdata se ut så här: / usr / bin / firefox
/ etc / firefox
/ usr / lib / firefox
För att hitta de delade biblioteken för Firefox, ange följande kommando: ldd / usr / bin / firefox
Utdata från kommandot kommer att vara ungefär så här: 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 är namnet på biblioteket och hex-numret är den adress biblioteket laddas till i minnet. På många rader, => symbolen följs av en sökväg. Detta är vägen till den fysiska binären. Hexnumret är adressen där biblioteket laddas.