GLIBC अपग्रेड में क्या गलत हो सकता है?


9

मैंने हाल ही में सॉफ़्टवेयर का एक टुकड़ा स्थापित किया है जिसे मेरे समूह को अगले सितंबर से शुरू होने वाली एक शोध परियोजना की आवश्यकता है। 2.12.1 glibc के साथ उपयोग किए जाने पर सॉफ़्टवेयर में एक क्रैश क्रैश बग होता है। मेरे बॉस ने पूछा कि क्या हम उस सर्वर पर ग्लिबक को अपग्रेड कर सकते हैं जो इसे चलाने वाला है। क्यू मेरी संशयपूर्ण चुप्पी…।

कुछ बिंदु पर, मैंने इसे अपने दिमाग में डाल लिया कि ग्लिब के साथ खिलवाड़ करना भूखे प्यूमा के साथ खिलवाड़ करने जैसा अच्छा विचार था; हालाँकि, मैं इस विश्वास के स्रोत को निर्धारित करने में असमर्थ रहा हूँ। इसलिए, अगर मैं इससे आगे बढ़ता हूं:

  1. क्या मैं कुछ मूर्खतापूर्ण मूर्खता कर रहा हूं (जैसे मैं अपनी समस्या को ठीक नहीं करूंगा, मैं अपने सर्वर को बंद कर दूंगा, या मैं एक ज़ोंबी सर्वनाश शुरू करूंगा)?
  2. क्या गलत हो सकता हैं?
  3. क्या गलत होने की संभावना है?
  4. मैं 2 और 3 के उत्तरों से कैसे बचूँ?

3
पहले, जांचें कि क्या आपके डिस्ट्रो में बग को ठीक करने वाले ग्लिबिक अपग्रेड हैं। एक डिस्ट्रो के एक विशेष ग्लिबक में आधिकारिक ग्लिबैक की तुलना में इसके ग्लिबक में कई बैकपोर्ट / बगिफ़िक्स हो सकते हैं, लेकिन डिस्ट्रो संस्करण अभी भी समान है।
nos

1
जब तक आपके पास कुछ बूट करने योग्य हटाने योग्य माध्यम (यूएसबी फ्लैश स्टिक, सीडी, डीवीडी) है, मशीन वास्तव में ईंट नहीं है। वहाँ से glibc को फिर से स्थापित करके बचाव संभव होगा। किसी भी खतरे से बचने के लिए, आप एक नए ग्लिबक को एक गैर-रूट उपयोगकर्ता के रूप में संकलित करने का प्रयास कर सकते हैं, --prefix=$HOMEफिर उस पर अपना संकेत LD_LIBRARY_PATHदें और देखें कि क्या यह काम करता है। एक गैर-रूट उपयोगकर्ता के रूप में आप पूरे सिस्टम को खराब नहीं कर सकते चाहे आप कितना भी गड़बड़ कर लें। अगर वह काम करता है, तो उसे शोध परियोजना के लिए आवश्यकता के रूप में --prefix=/usr/local/bleeding-edge-glibcदस्तावेज़ और दस्तावेज़ LD_LIBRARY_PATH=/usr/local/bleeding-edge-glibc/libमें बदल दें
एलन करी

1
क्या आप वितरण को अपग्रेड नहीं कर सकते हैं? और आपको यह बताना चाहिए कि आप किस glibcबग से डरते हैं, और आप किस तरह के सॉफ्टवेयर का उपयोग कर रहे हैं। आप अपने सॉफ़्टवेयर को पैच कर सकते हैं (यह मानते हुए कि आपके पास इसका स्रोत कोड है), या इसे रोकने के लिए आपके सिस्टम को अन्यथा कॉन्फ़िगर करें।

जब भी संभव हो नई परियोजनाओं के लिए पुराने सर्वर सॉफ्टवेयर का उपयोग करने से बचें।
माइकल हैम्पटन

जवाबों:


5

अक्सर नए सिरे से परिवाद संकलित करना संभव होता है, और सॉफ्टवेयर का एक टुकड़ा सभी के लिए एक अलग पुस्तकालय का उपयोग करता है।

Libc संस्करणों के बीच सबसे बड़ा दर्द बिंदु थ्रेड स्थानीय भंडारण, IIRC है। यदि आप इस मील के पत्थर को पार कर रहे हैं, तो सभी दांव बंद हो जाएंगे।

यह सब कहने के बाद - मैं दृढ़ता से सलाह दूंगा कि आप डिस्ट्रो को आधुनिक रूप से उन्नत करें। टुकड़ों में अपग्रेड करने से उस दर्द के बढ़ने की संभावना होती है जो आपने महीनों से अपनी पूंछ का पीछा कर रहे हैं।


2

आप बाइनरी-संगत संस्करणों को निर्धारित करने के लिए संगतता तालिका को संदर्भित कर सकते हैं ।

आमतौर पर ग्लिबैक को एक नए संस्करण में अपग्रेड करने में कोई समस्या नहीं है, लेकिन आपको इसे उसी कॉन्फ़िगरेशन के झंडे के साथ बनाना चाहिए जैसा कि आपके वितरण में उपयोग किया गया है (उचित एसआरपीएम पैकेज में कल्पना फ़ाइल देखें)।

यहां छवि विवरण दर्ज करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.