मुझे पता है कि लिनक्स के तहत साझा की गई वस्तुएं "इतनी संख्या" का उपयोग करती हैं, अर्थात् एक साझा वस्तु के विभिन्न संस्करणों को अलग-अलग एक्सटेंशन दिए जाते हैं, उदाहरण के लिए:
example.so.1
example.so.2
मैं समझता हूं कि इस विचार की दो अलग-अलग फाइलें हैं जैसे कि एक सिस्टम पर एक लाइब्रेरी के दो संस्करण मौजूद हो सकते हैं (जैसा कि विंडोज पर "डीएलएल हेल" के विपरीत है)। मैं जानना चाहता हूं कि यह कैसे व्यवहार में काम करता है? अक्सर, मैं देखता हूं कि example.so
वास्तव में एक प्रतीकात्मक लिंक है example.so.2
जहां .2
नवीनतम संस्करण है। फिर एक एप्लिकेशन पुराने संस्करण के आधार पर example.so
इसे सही ढंग से कैसे पहचानता है? क्या कोई नियम हैं कि किस नंबर का उपयोग करना चाहिए? या यह केवल सम्मेलन है? क्या यह मामला है कि विंडोज के विपरीत, जहां सॉफ्टवेयर बायनेरिज़ को सिस्टम के बीच स्थानांतरित किया जाता है, अगर किसी सिस्टम में एक साझा ऑब्जेक्ट का एक नया संस्करण है जो स्रोत से संकलन करते समय पुराने संस्करण से स्वचालित रूप से जुड़ा हुआ है?
मुझे संदेह है कि यह संबंधित है, ldconfig
लेकिन मुझे यकीन नहीं है कि कैसे।