यह कोई डुप्लिकेट नहीं है क्योंकि यह मेरे द्वारा उपयोग किए जाने पर मेरे द्वारा देखी गई ख़ासियत से निपट रहा है /etc/ld.so.conf
।
पुस्तकालयों के लिए गतिशील लिंकर खोज करने वाले रास्तों को प्राप्त करने के लिए, मैं कमांड चलाता हूं ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
। जब /etc/ld.so.conf
इसमें कोई पथ सूचीबद्ध नहीं है। पिछले कमांड से आउटपुट है
/lib
/usr/lib
मुझे लगा कि यह /lib
पहले और फिर खोज करता है /usr/lib
। जब मैं एक नया पथ जोड़ता हूं, जैसे कि /usr/local/lib
, /etc/ld.so.conf
तब और फिर रीमेक /etc/ld.so.cache
, से आउटपुट ldconfig -v | grep -v "^"$'\t' | sed "s/:$//g"
बन जाता है
/usr/local/lib
/lib
/usr/lib
मैं यह अजीब है क्योंकि अगर मैं सही है कि आदेश है कि सूचीबद्ध निर्देशिका में खोजे जाते हैं, ऊपर से नीचे तक है कर रहा हूँ, तो अतिरिक्त निर्देशिका से पहले की खोज कर रहे हैं /lib
और /usr/lib
। अतिरिक्त निर्देशिका भरोसा निर्देशिका से पहले की खोज कर रहे हैं यही कारण है कि अपने आप ही अजीब नहीं है, लेकिन जब /lib
से पहले की खोज कर रहा है /usr/lib
, जो अजीब है, क्योंकि /bin
और /sbin
बाद की खोज कर रहे हैं /usr/bin
और /usr/sbin
में PATH
।
यहां तक कि अगर सूचीबद्ध किए ldconfig -v | grep -Ev "^"$'\t' | sed "s/:$//g"
गए रास्तों को नीचे से ऊपर तक खोजा गया था, तब भी यह एक तिरछा क्रम होगा क्योंकि अतिरिक्त निर्देशिकाओं को विश्वसनीय लोगों के बाद खोजा जाएगा, जबकि /lib
बाद में खोजा जाएगा /usr/lib
।
तो, वह कौन सा आदेश है जो ld.so
पुस्तकालयों के लिए मार्ग खोजता है? /lib
पहले क्यों खोजा गया है /usr/lib
? यदि यह नहीं है, तो अतिरिक्त निर्देशिकाओं की खोज आखिर क्यों की जाती है /lib
?