Linux'ta "ldd" Komutunu Kullanma

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ır

Ldd 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 bul

Bununla birlikte , bulma komutuyla ilgili sorun, yalnızca yürütülebilir dosyayı değil, Firefox'un bulunduğu her yerde bulunacak olmasıdır:

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 firefox

Bu 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 / firefox

Komutun çı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.