Käytä LDD komento näyttää minkä tahansa ohjelman edellyttämät jaetut kirjastot - hyödyllisiä käsitellä, kun puuttuva riippuvuus puuttuu. Komennossa luetellaan myös puuttuvat toiminnot ja objektit.
ldd komentosyntaksi
Huomioi ldd-komennon asianmukainen syntaksi virheiden välttämiseksi:
ldd OPTION … TIEDOSTO …
Käytä yhtä tai useampaa käytettävissä olevaa ldd-komentokytkintä VAIHTOEHTO paikalla yllä olevassa komennossa: - helpota tulosta tämä ohje ja poistu --versio | tulostaa version tiedot ja poistua -d, --data-relocs | prosessidatan siirrot -r, --funktio-relocs | prosessidatan ja toiminnan siirtämisen -u, --unused | tulostaa käyttämättömät suorat riippuvuudet -v, --verbose | tulosta kaikki tiedot Suorita seuraava komento saadaksesi lisätietoja ohjelmasta: $ ldd -v / path / to / program / executable
Tulostus näyttää versiotiedot sekä polut ja osoitteet jaettuihin kirjastoihin, kuten: $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Jos SO-tiedostoa ei ole lainkaan, löytyvät puuttuvat kirjastot käyttämällä seuraavaa komentoa: $ ldd -d polku / ohjelmaan
Lähtö on samanlainen kuin seuraavat: 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)
Älä koskaan aja ldd-komentoa epäluottamukselliseen ohjelmaan, koska ldd saattaa itse suorittaa sen. Käytä sen sijaan turvallisempaa vaihtoehtoa, joka näyttää vain suorat riippuvuudet eikä koko riippuvuuspuu: $ objdump -p / path / to / program | grep TARVITSE Sinun on annettava hakemuksen koko polku, jos haluat löytää sen riippuvuudet ldd: llä, jota voit tehdä useilla tavoilla. Näin esimerkiksi löytää Firefoxin polku: Etsi / -name firefox
Etsi-komennon ongelma on kuitenkin se, että se ei ainoastaan luetteloi suoritustiedostoa vaan kaikkialla, jossa Firefox sijaitsee, kuten: Tämä lähestymistapa on hieman ylikuormitusta ja saatat joutua käyttämään sudo-komentoa nostaa oikeuksiasi, muuten saat todennäköisesti paljon lupaa kieltäviä virheitä. Sen sijaan on paljon helpompaa käyttää whereis-komentoa hakemiston polun etsimiseen: $ joka on firefox
Tällä kertaa tulos voi näyttää tältä: / Usr / bin / firefox / Etc / firefox / Usr / lib / firefox Sinun tarvitsee vain etsiä jaetut kirjastot Firefoxille, kirjoita seuraava komento: $ ldd / usr / bin / firefox
Komennon tuotos tulee olemaan näin: linux-vdso.so.1 (0x00007ffff8364000)libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)libstdc ++. niin.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 kirjaston nimi ja hex-numero on osoite, johon kirjasto ladataan muistiin. Huomaat monissa muissa riveissä, että => -merkkiä seuraa polku. Tämä on polku fyysiseen binääriin; Hex-numero on osoite, johon kirjasto ladataan. Miten ldd-komentoa käytetään?
Miten löytää polku sovellukseen