ভাগ গ্রন্থাগার হাওটুর জড়িত প্রক্রিয়া অধিকাংশ বর্ণনা দেওয়া আছে এবং গতিশীল লোডার ম্যানুয়াল আরো বিস্তারিত মধ্যে যায়। প্রতিটি ইউনিক্স ভেরিয়েন্টের নিজস্ব পদ্ধতি রয়েছে তবে বেশিরভাগ একই এক্সিকিউটেবল ফর্ম্যাট ( ইএলএফ ) ব্যবহার করেন এবং একই রকম ডায়নামিক লিংকার থাকে (সোলারিস থেকে প্রাপ্ত)। নীচে আমি লিনাক্সের উপর ফোকাস দিয়ে সাধারণ আচরণের সংক্ষিপ্তসার করব; সম্পূর্ণ গল্পের জন্য আপনার সিস্টেমের ম্যানুয়ালগুলি পরীক্ষা করে দেখুন।
সংক্ষেপে, যখন এটি ডায়নামিক লাইব্রেরি ( .soফাইল) সন্ধান করে লিঙ্কার চেষ্টা করে:
LD_LIBRARY_PATHপরিবেশে পরিবর্তনশীল ( DYLD_LIBRARY_PATHOSX- এ) তালিকাভুক্ত ডিরেক্টরিগুলি ;
- এক্সিকিউটেবলের আরপথে তালিকাভুক্ত ডিরেক্টরিসমূহ ;
- সিস্টেম অনুসন্ধানের পাথের ডিরেক্টরিগুলি, যা (অন্তত লিনাক্সে)
/etc/ld.so.confপ্লাস /libএবং এন্ট্রি নিয়ে গঠিত /usr/lib।
আরপ্যাথটি এক্সিকিউটেবলে সংরক্ষণ করা হয় (এটি DT_RPATHবা DT_RUNPATHগতিশীল বৈশিষ্ট্য)। $ORIGINএক্সিকিউটেবলের অবস্থানের সাথে সম্পর্কিত কোনও পথ নির্দেশ করতে /opt/myapp/binএটিতে শুরু হওয়া নিখুঁত পাথ বা পাথ থাকতে পারে (উদাহরণস্বরূপ যদি এক্সিকিউটেবলটি থাকে এবং এর আরপথ থাকে $ORIGIN/../lib:$ORIGIN/../pluginsতবে ডায়নামিক লিঙ্কারটি সন্ধান করবে /opt/myapp/libএবং /opt/myapp/plugins)। আরপ্যাথটি সাধারণত নির্ধারিত হয় যখন এক্সিকিউটেবলটি সংকলিত হয়, -rpathবিকল্প সহ ld, তবে আপনি এটির পরে এটি পরিবর্তন করতে পারেন chrpath।
আপনি যে দৃশ্যের বর্ণনা দিয়েছেন তাতে আপনি যদি অ্যাপ্লিকেশনটির বিকাশকারী বা প্যাকেজর হন এবং এটি একটি …/bin, …/libকাঠামোতে ইনস্টল করার উদ্দেশ্যে থাকেন তবে তার সাথে লিঙ্ক করুন -rpath='$ORIGIN/../lib'। আপনি যদি আপনার সিস্টেমে প্রাক-বিল্ট বাইনারি ইনস্টল করেন, হয় হয় লাইব্রেরিকে অনুসন্ধানের পথে একটি ডিরেক্টরিতে রেখে দিন ( /usr/local/libআপনি যদি সিস্টেম প্রশাসক হন, অন্যথায় আপনি যে ডিরেক্টরিতে যুক্ত করেন $LD_LIBRARY_PATH) তবে চেষ্টা করুন chrpath।
/lib64এবং/usr/lib6464 বিট বাইনারি জন্য ব্যবহার করা হয় এবং/libএবং/usr/lib32 বিট বাইনারি জন্য ব্যবহৃত হয়।