Dinamik kütüphaneler çekirdek tarafından yüklenir, yollar bir programda kodlanmış değildir. Bir program sadece "libc.so.6'ya ihtiyacım var" diyor. Sistem daha sonra ve varsayılan olarak /etc/ld.so.conf
dahil olmak üzere kütüphane yollarında arama yapar . Bu dosya içinde ek yapılandırma dosyaları içerir ./usr/lib
/lib
/etc/ld.so.conf.d
64 bit sistemimde, libc.so.6
içinde /lib/x86_64-linux-gnu/libc.so.6
tanımlanan yol nedeniyle bulunabilir /etc/ld.so.conf.d/x86_64-linux-gnu.conf
:
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
Kütüphane, bir program tarafından yüklenen öğrenmek için, kullanmak ldd
gibi ldd /bin/bash
:
linux-vdso.so.1 => (0x00007ffff1dff000)
libncurses.so.5 => /lib/libncurses.so.5 (0x00007f9d8b3b8000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f9d8b1b4000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f9d8ae1f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f9d8b61c000)
Sembolik bağlantıyı koymak hiçbir şeyi bozmaz.
Aranan dizinlerin bir listesini görmek için aşağıdaki komutu çalıştırın:
ldconfig -v -N | grep '^/'
-v
dosya + dizinlerinin gösterilmesini sağlar, -N
önbellek ( /etc/ld.so.cache
) 'nin yeniden oluşturulmasını önler .