Yanıtlar:
Yürütülebilir bir dosyanız varsa ve kitaplıkların nereden alındığını görmek istiyorsanız,
ldd /path/to/executable
Bu, varsayılan arama yolundaki kütüphanelerin yanı sıra bu yürütülebilir dosyanın rpath'indeki kütüphaneleri de hesaba katacaktır .
Linux'ta, sistem kitaplıklarına giden yollar verimlilik için önbelleğe alınır. /sbin/ldconfig -p
önbellek içeriğini görüntüler (içinde saklanır /etc/ld.so.cache
). Kitaplığın konumlarını gösteren bir komut dosyası:
#!/bin/sh
if [ -n "$LD_LIBRARY_PATH" ]; then
set -f
IFS=:
for d in $LD_LIBRARY_PATH; do
if [ -e "$d/$1" ]; then echo "$1"; fi
done
fi
/sbin/ldconfig -p |
awk -v needle="$1" '$1 == needle {sub(/.* => /, ""); print}'
Kitaplıklarınız düzgün bir şekilde önbelleğe alınmışsa, onu bulmak için iptal edilmeniz gerekir:
ldconfig -p|grep "yourlibrary"
Dağıtımınızla birlikte gelen bir kitaplığı ararsanız, paketler içindeki dosyaları aramak için dağıtım araçlarını kullanabilirsiniz.
Bu, yüklü olmayan ancak etkin yükleme kaynaklarınızın bir parçası olan rpm'leri de çıkarır.
Adlı bir dosya arar gcc
's -lLIBNAME
bayrağı gibi çalışacak bir yardımcı program arıyorsanız libLIBNAME.so
, muhtemelen böyle bir şey yapan küçük bir komut dosyası kullanabilirsiniz:
#!/bin/sh
ldpath="${LD_LIBRARY_PATH:-$(</etc/ld.so.conf)}"
notfound=1
for libdir in ${ldpath//:/ }; do
(test -f "$libdir/lib${1}.so" && echo "$_") && notfound=0
done
[ "$notfound" -eq 0 ]