Ldd komutu, herhangi bir program tarafından gereken paylaşılan kütüphaneleri göstermek için kullanılabilir.
Bu eksik bir bağımlılık olduğunda çalışmak için yararlıdır ve eksik fonksiyonları ve nesneleri listelemek için kullanılabilir.
ldd Komut Sözdizimi
Ldd komutunu kullanırken bu doğru sözdizimi :
ldd [SEÇENEK] ... DOSYA ...Yukarıdaki komutta [OPTION] noktasında eklenebilecek kullanılabilir ldd komut anahtarları şunlardır:
--help bu yardımı yazdırın ve --version baskı sürümü bilgilerini çıkın ve çıkın -d, --data-relocs işlemi veri yeniden yerleştirme işlemleri -r, --function-relocs işlem verileri ve işlev yeniden yüklemeleri -u, - kullanılmayan yazdırma kullanılmayan doğrudan bağımlılıklar -v, --verbose tüm bilgileri yazdırLdd Komutu Nasıl Kullanılır
Herhangi bir ldd komutundan daha fazla bilgi almak için aşağıdaki komutu kullanabilirsiniz:
ldd -v / path / to / program / yürütülebilirÇıktı, sürüm bilgilerinin yanı sıra paylaşılan kütüphanelere giden yol ve adresleri de gösterir:
ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)SO dosyası hiç mevcut değilse, aşağıdaki komutu kullanarak eksik kütüphaneleri bulabilirsiniz:
ldd -d yolu / program / programÇıktı aşağıdakine benzer:
linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => bulunamadılibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) / lib64 / ld-linux-x86 -64.so.2 (0x00007fd0c65fd000)Önemli: Komut gerçekten çalıştırabileceğinden ldd komutunu güvenilmeyen bir programa karşı çalıştırmayın. Bu, tüm bağımlılık ağacını değil, doğrudan bağımlılıkları gösteren daha güvenli bir alternatiftir: objdump -p / path / to / program | grep İHTİYACI .
Bir Uygulamanın Yolunu Nasıl Bulunur
Ldd ile bağımlılıklarını bulmak istiyorsanız, bir çok yolla yapabileceğiniz bir uygulamaya tam yol vermelisiniz.
Örneğin, Firefox yolunu nasıl bulacağınız budur:
/ -name firefox'unu bulBununla birlikte , bulma komutuyla ilgili sorun, yalnızca yürütülebilir dosyayı değil, Firefox'un bulunduğu her yerde bulunacak olmasıdır:
- /etc/skel/.mozilla/firefox
- / Home // önbellek / mozilla / firefox
- /home//.mozilla/firefox
- / Usr / bin / Firefox
- / Usr / lib / Firefox
- / Usr / lib / Firefox / Firefox
Bu yaklaşım biraz fazladır ve ayrıcalıklarınızı yükseltmek için sudo komutunu kullanmanız gerekebilir, ancak çok sayıda izin reddedildi.
Bunun yerine, bir uygulamanın yolunu bulmak için whereis komutunu kullanmak çok daha kolaydır:
nerede firefoxBu sefer çıktı böyle görünebilir:
/ usr / bin / firefox
/ etc / ateş
/ usr / lib / ateş
Firefox için paylaşılan kütüphaneleri bulmak için şimdi yapmanız gereken tek şey şu komutu yazmaktır:
ldd / usr / bin / firefoxKomutun çıktısı şöyle bir şey olacak:
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, kütüphanenin adıdır ve onaltılık sayı, kütüphanenin belleğe yükleneceği adrestir.
Diğer satırların çoğunda => sembolünün bir yol izlediğini göreceksiniz. Bu, fiziksel ikili yolun yoludur; onaltılık sayı kütüphanenin yükleneceği adrestir.