क्या ग्लिबैक के बाइनरी बिल्ड को स्थापित करने के लिए एक आसान तरीका है?


13

समय और समय फिर से मैं इन जैसे प्रश्न देखता हूं:

और ये ऐसे प्रकार के समाधान हैं जिन्हें हम आमतौर पर आगे बढ़ा रहे हैं:

क्या यह वास्तव में सबसे अच्छा हम कर सकते हैं? GLIBC के बाइनरी बिल्ड नहीं हैं जो हम बस एक डायरेक्टरी में अनज़िप कर सकते हैं जैसे कि /opt/myglibc, और $LD_LIBRARY_PATHजो भी या जिस भी एप्लिकेशन को हम चाहते हैं उसे सेट करें , बिना मुद्दों के?

एक एप्लिकेशन, जैसे Chrome के नए बिल्ड (28+) जो GLIBC 2.14 की आवश्यकता के लिए दिखाई देते हैं?

नोट: यह धागा शीर्षक: Google Chrome 29 का विमोचन - RHEL / CentOS 6 और Fedora 19/15 पर tecmint.com पर स्थापित करें जो आखिरकार मुझे इस बारे में सोचने को मिला।

संदर्भ

जवाबों:


1

यदि यह किसी अन्य पुस्तकालय के लिए था, लेकिन glibc ... मुझे लगता है कि वहाँ त्वरित तरीके नहीं हो सकते, क्योंकि glibc वह स्थान है जहाँ सामान "हार्ड कोडित" होता है। ग्लिबेक आपके कर्नेल संस्करण में फिट बैठता है और इसका लोडर उदाहरण है जो वास्तव में सही चीज़ (टीएम) के साथ करता है LD_LIBRARY_PATH

शायद सही तरीका यह है:

LD_LIBRARY_PATH="/opt/myglibc/;..." /opt/myglibc/ld-linux.so.2 the_program`

यकीन नहीं है कि अगर यह काम करता है, हालांकि।

किसी भी दर पर, मुझे लगता है कि वैकल्पिक glibc का उपयोग करने के लिए रूपरेखा को लागू करने के लिए अभी तक की आवश्यकता है, क्योंकि खोज पथ कभी-कभी वायर्ड होते हैं और glibc को हमेशा आपके OS / कर्नेल को फिट करना पड़ता है, इसलिए सामान्य बायनेरिज़, IMO नहीं हो सकता। डेबियन की मल्टीचर्च से पता चलता है कि यह तुच्छ नहीं है, लेकिन फिर भी किया जा सकता है। अगर किसी के पास लक्ष्य वास्तुकला के अलावा समझदार पुस्तकालयों के कुछ अन्य साधन थे।

वेबसाइट ने मुझे केवल यह अन्य संबंधित धागा दिया:

वहां, स्वीकृत जवाब में rtldi नामक एक प्रोग्राम का लिंक शामिल है , जो ग्लिबक समस्या को हल करने के लिए लगता है। यह 2004 से है, इसलिए यह लिंकर के बाहर अब सही काम नहीं कर सकता है, लेकिन शायद इसके लायक है। इसका स्रोत GPLv2 है।

जेहोवा, जेहोवा

मेरा एक मित्र एक बार इस विचार के साथ आया, कि साझा पुस्तकालयों का वास्तविक उपयोग खत्म हो गया है। और उसके पास एक बिंदु है: साझा लाइब्रेरी आपके कंप्यूटर की मेमोरी को डुप्लिकेट के साथ नहीं भरने के लिए अच्छा है, लेकिन व्यक्तिगत आवेदन उदाहरण पर विचार करना यह केवल कुछ एमबीएस है।

केवल कुछ ही अनुप्रयोग हैं जहाँ हम उन्हें अपनी स्वयं की चमक प्रदान करने जैसी क्रियाओं का सहारा लेंगे। हमें एक लंबे विश्लेषण को सहेजते हुए चलो उन्हें "तत्काल अनुप्रयोग" कहते हैं, जो काम करने के अर्थ में, स्वयं के द्वारा उपयोग किए जाते हैं। उदाहरण के लिए वेब ब्राउज़र, मेल उपयोगकर्ता एजेंट, कार्यालय सूट और संगीत खिलाड़ी उपयोगकर्ता को वे प्राप्त करने की अनुमति देते हैं जो वे चाहते हैं और प्रति उपयोगकर्ता केवल कुछ उदाहरण हैं। दूसरी तरफ, सिस्टम सेवाओं, विंडो मैनेजरों, यहां तक ​​कि पूरे डेस्कटॉप वातावरणों को चित्रित करने के लिए सभी बहुत महत्वपूर्ण हैं, लेकिन केवल समर्थन करना और अक्सर पर्याप्त रूप से असामान्य या महत्वपूर्ण नहीं है, ताकि लोग उन्हें अपनी खुद की चमक देने के लिए तैयार हों।

"तत्काल एप्लिकेशन" की संख्या इन दिनों की तुलना में छोटे, बिल्कुल प्रति उपयोगकर्ता और अपेक्षाकृत "OS" और DEs की तुलना में अपेक्षाकृत कम है। यदि क्रोम, फ़ायरफ़ॉक्स जैसे तात्कालिक अनुप्रयोगों को सांख्यिकीय रूप से संकलित किया गया था, तो औसत सिस्टम के लिए अतिरिक्त मेमोरी आवश्यकता कुछ 100MB होगी। एक तर्क जो आज के कई जीबी सिस्टम पर बहुत दूर नहीं ले जाता है, इसलिए तत्काल अनुप्रयोगों के लिए सांख्यिकीय लिंक एक विकल्प हो सकता है।

स्वैप स्पेस और एसएसडी की अवधारणाएं भी हैं जो कि रेडिएंट तेजी से स्वैपिन / -आउट के लिए अनुमति देती हैं, जो कि समर्थित मेमोरी आवश्यकता को संभालने में भी मदद करती हैं।

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


2
"हम यहाँ कुछ 100MB के बारे में बात कर रहे हैं" उह, नहीं। हालाँकि पुस्तकालयों का थोक स्वयं उतना अधिक नहीं हो सकता है (लेकिन शायद परिमाण का एक क्रम या 100 एमबी से अधिक दो - कोशिश du -h /lib), ध्यान रखें कि यदि वे सांख्यिकीय रूप से संकलित किए गए थे, तो प्रत्येक के लिए RAM की मात्रा की आवश्यकता होगी और हर आवेदन उनके साथ संकलित। तो अगर, उदाहरण के लिए। आपके पास एक ही लाइब्रेरी स्टैक का उपयोग करने वाले दो ऐप हैं, अब आपको दो बार अधिक मेमोरी की आवश्यकता होगी। तीन ऐप्स? तीन गुना ज्यादा। इसका उल्लेख नहीं करना काफी हद तक कैशिंग के लाभों को नकार देगा ...
गोल्डीलॉक्स

2
... चूंकि, निश्चित रूप से, आप सिर्फ कैश को कैश नहीं कर सकते हैं - आपको हर एप्लिकेशन की प्रतियां कॉपी करनी होंगी जो (== हास्यास्पद) हैं। संक्षेप में, आधुनिक ऑपरेटिंग सिस्टम आधुनिक हार्डवेयर पर पूरी तरह से असंभव और सरल होगा यदि यह आधुनिक तकनीक जैसे साझा वस्तुओं के लिए नहीं था। आपको बस थोड़ी अधिक मेमोरी की आवश्यकता नहीं होगी - आपको 10 या 100 बार अधिक मेमोरी की आवश्यकता होगी।
गोल्डीलॉक्स

मेरे डेबियन में 235MB है /lib, जिनमें से 202MB कर्नेल मॉड्यूल हैं। हां, /usr/lib4 जीबी है, लेकिन यह व्यक्तिगत कार्यक्रम की कितनी आवश्यकता है, इस पर कोई निष्कर्ष निकालने की अनुमति देता है। प्रोसेसर के कैश केवल कुछ एमबी हैं। हाल के वेब ब्राउज़र की तरह कुछ की मेमोरी खपत के साथ, कैशिंग पर सांख्यिकीय रूप से जुड़े बायनेरिज़ का प्रभाव भी उतना बड़ा नहीं है कि समवर्ती चलने वाले कार्यक्रमों के साथ राशि कम और कम हो; अपेक्षाकृत छोटे कैश के कारण के लिए भी। मेरे अनुमान आपके मुकाबले अधिक सटीक लगते हैं। उह, हाँ।
बनुआंगिन

स्थैतिक लिंकिंग के साथ अन्य भारी समस्या का उल्लेख नहीं करना - अपडेट एक पीआईटीए हैं। यदि glibc में कोई सुरक्षा समस्या है, तो कोई बड़ी बात नहीं है: glibc को अपग्रेड करें, अपने कार्यक्रमों को पुनः आरंभ करें। OTOH, आपके कार्यक्रम सांख्यिकीय रूप से जुड़े हुए थे, आपको हर कार्यक्रम का एक नया संस्करण डाउनलोड करना होगा । और आपके डिस्ट्रो को पूरे डिस्ट्रो के विशालकाय आकार के कारण (या कम से कम री-लिंक, अगर उन्होंने सभी .o फाइलें रखी हों, तो संभावना नहीं होती)।
derobert

1
@derobert: उचित लगता है। स्पष्ट रूप से मेरे दावे को अतिशयोक्तिपूर्ण था - यहाँ 1.8 जीबी के साथ 521 एमबी तक की छूट दी गई थी। तो यह 30% की वृद्धि होगी। बेशक, यह अभी भी एक रणनीति के लिए बिक्री बिंदु नहीं है जिसका कोई लाभ नहीं है (लेकिन "केवल 30% अधिक रैम की आवश्यकता है")।
गोल्डीलॉक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.