जवाबों:
यदि आपके पास एक निष्पादन योग्य है और आप यह देखना चाहते हैं कि यह कहां से पुस्तकालय उठा रहा है, तो दौड़ें
ldd /path/to/executable
यह डिफॉल्ट सर्च पथ पर पुस्तकालयों के साथ-साथ इस निष्पादन योग्य रपट में यदि कोई हो तो पुस्तकालयों का भी हिसाब रखेगा ।
लिनक्स पर, सिस्टम लाइब्रेरी के लिए पथ दक्षता के लिए कैश किए जाते हैं। /sbin/ldconfig -p
कैश की सामग्री प्रदर्शित करता है (यह संग्रहीत है /etc/ld.so.cache
)। यहाँ एक स्क्रिप्ट है जो एक लाइब्रेरी की लोकेशन दिखाती है:
#!/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}'
यदि आपके पुस्तकालयों को ठीक से कैश किया गया है, तो आपको इसे खोजने के लिए छोड़ देना चाहिए:
ldconfig -p|grep "yourlibrary"
यदि आप एक पुस्तकालय की खोज करते हैं जो आपके वितरण के साथ आया है तो आप संकुल के भीतर फाइलों की खोज के वितरण साधनों का उपयोग कर सकते हैं।
यह उन आउटपुट rpms को भी स्थापित करेगा जो स्थापित नहीं हैं, लेकिन आपके सक्रिय इंस्टॉलेशन स्रोतों का हिस्सा हैं।
आप एक उपयोगिता है कि तरह काम करेगा के लिए देख रहे हैं gcc
के -lLIBNAME
झंडा, नामक एक फ़ाइल के लिए जो दिखता है libLIBNAME.so
तो आप शायद एक छोटे से स्क्रिप्ट जो कुछ इस तरह करता है इस्तेमाल कर सकते हैं:
#!/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 ]