এটি কোনও সদৃশ নয় কারণ এটি ব্যবহার করার সময় আমি লক্ষ্য করেছি এমন একটি অদ্ভুততার সাথে সম্পর্কিত /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
?