GLIBC को अपडेट किए बिना नया सॉफ्टवेयर कैसे चलाएं?


20

मैंने एक पुराने Red Hat Enterprise Linux AS रिलीज 4 सिस्टम पर Mathematica 9 स्थापित किया है। स्थापना के बाद, मैंने गणितज्ञ को शुरू करने की कोशिश की, लेकिन निम्नलिखित संदेश सामने आया:

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /libet-tls/libc.so.6: संस्करण `GLIBC_2.4 'नहीं मिला (/ आवश्यक) घर / wcbao / एम / Wolfram / मेथेमेटिका / 9.0 / SystemFiles / पुस्तकालय / लिनक्स x86-64 / libML64i3.so)

/home/wcbao/M/Wolfram/Mathematica/9.0/SystemFiles/FrontEnd/Binaries/Linux-x86-64/Mathematica: /libet-tls/libc.so.6: संस्करण `GLIBC_2.4 'नहीं मिला (/ आवश्यक) घर / wcbao / एम / Wolfram / मेथेमेटिका / 9.0 / SystemFiles / पुस्तकालय / लिनक्स x86-64 / libQtCore.so.4)

मैं सिस्टम को अपडेट करना नहीं चाहता, क्योंकि यह जोखिम भरा है और व्यवस्थापक मुझे ऐसा करने की अनुमति नहीं देते हैं।

किसी ने सुझाव दिया कि ग्लिबक के नए संस्करण को बस कहीं और स्थापित करना संभव है, और कार्यक्रम को इस रूप में चलाएं

LD_LIBRARY_PATH=/lib/new your_application

और यह सिस्टम को प्रभावित नहीं करेगा।

इसलिए मैं यहां पूछ रहा हूं कि क्या यह विधि वास्तव में काम करती है। और अगर यह काम करता है, तो मैं यह जानना चाहता हूं कि इसे चरणबद्ध तरीके से कैसे किया जाए (मुझे अभी लिनक्स में अनुभव की कमी है, और जल्द से जल्द लिनक्स पर गणितज्ञ का उपयोग करना चाहते हैं)।

संपादित करें :

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


2
यह काम करेगा। इसे स्थापित करने के लिए काफी काम होने की संभावना है (आपको उन सभी पुस्तकालयों को स्थापित करने की आवश्यकता होगी जो गणितज्ञ निर्भर करता है)। मेरा पुनर्मूल्यांकन अपने घर के एक उपनिर्देशिका में एक नए रिलीज से आरपीएम पैकेज स्थापित करने के लिए होगा। मैं आरएच से परिचित किसी व्यक्ति को एक उत्तर लिखने देता हूं जिसमें बताया गया है कि यह कैसे करना है।
गाइल्स 'एसओ- बुराई को रोकना'

@ गिल्स हाय, गाइल्स, बहुत बहुत धन्यवाद !!! मुझे उसकी उम्मीद है।
user15964

यह है कहीं और glibc स्थापित करने के लिए जोखिम भरा।
बेंजीवेब

@BenjiWiebe - आप किस तरह के जोखिमों का जिक्र कर रहे हैं?
FooF

1
सुपरयुसर से क्रॉस-पोस्ट किया गया: superuser.com/questions/543249/… वहां से मेरी टिप्पणी दोहराते हुए: "आरएचईएल 4 आठ साल पुराना है और अपने सामान्य समर्थन जीवन चक्र के अंत तक पहुंच गया है। ऐसी कोई दूसरी मशीन नहीं है जिसे आप इसे स्थापित कर सकें। जैसे; आपका डेस्कटॉप मशीन। "
बुरहान अली

जवाबों:


10

आप निश्चित रूप से GLIBC के एक नए संस्करण को संकलित कर सकते हैं और इसे एक अलग निर्देशिका में संग्रहीत कर सकते हैं। पहली चीज़ जो आपको करनी होगी, वह है glibc का संस्करण जिसे आप http://ftp.gnu.org/gnu/glibc/ से चाहते हैं ।

configureस्क्रिप्ट को चलाएं और --prefix=कुछ को सेट करें /home/you/mylibs

जब आप इसे उस निर्देशिका में स्थापित करने में कामयाब हो जाते हैं, तो आपको अपने LD_LIBRARY_PATHनए glibc के स्थान पर सेट करना होगा।

आपको किसी भी निर्भरता का पता लगाने की आवश्यकता होगी जिसे आपको संकलन करने की आवश्यकता हो सकती है। आप एक शेल स्क्रिप्ट बना सकते हैं जो LD_ * वैरिएबल सेट करता है और आपके प्रोग्राम को चलाता है (जो आपको वैसे भी करना होगा), और इसे बार-बार चलाएं - रास्ते में गुम कामों को डाउनलोड करें / पुन: लिखें।

आप यह lddनिर्धारित करने के लिए भी उपयोग कर सकते हैं कि प्रोग्राम को किन साझा पुस्तकालयों की आवश्यकता है, फिर lddप्रत्येक लाइब्रेरी पर यह जानने के लिए उपयोग करें कि क्या उन्हें ग्लिबैक की आवश्यकता है।

यह बहुत समय लेने वाली प्रक्रिया हो सकती है और यह दिल की अधीरता या बेहोश करने के लिए नहीं है - आपके आवेदन के काम को करने के लिए आवश्यक निर्भरता के माध्यम से अपने रास्ते का पता लगाना / फिर से तैयार करना कभी-कभी आपके बालों को खींचना चाहता है।

अपडेट 1:

मैंने glibc-2.4 को डाउनलोड किया और इसे CentOS 6 पर संकलित करने की कोशिश की। configureठीक से काम करने के लिए मुझे निम्नलिखित द्वारा अपडेट acऔर ldसंस्करण जांच को बदलना पड़ा :

2.1[3-9]*)

सेवा:

2.*)

लाइनों पर 4045और 4106में configureफ़ाइल स्वयं। मैंने अपना * FLAGS पर्यावरण चर जैसे सेट किया:

LDFLAGS="-Wl,--sort-common -Wl,-zcombreloc -Wl,-znow" 
CFLAGS="-pipe -fomit-frame-pointer -g1 -O3 -frename-registers -fweb -ftracer -fmodulo-sched -fvariable-expansion-in-unroller -fgcse-sm"
CXXFLAGS="${CFLAGS}" 
CFLAGS="${CFLAGS} -freorder-blocks-and-partition" 
export LDFLAGS CFLAGS CXXFLAGS

और फिर निष्पादित किया गया ./configure --prefix=/home/tim/masochist। यह ठीक से कॉन्फ़िगर किया गया ... और यह ठीक से भी निर्माण करना शुरू कर दिया ... लेकिन फिर मैंने त्रुटियों में भागना शुरू कर दिया - ज्यादातर कंपाइलर चीजों को नए सिरे से परिभाषित करने के बारे में शिकायत कर रहे थे।

उस बिंदु पर मैंने हार मान ली ... क्योंकि बहुत समय लग रहा था । ;)


जानकारी के लिए +1, हालांकि अंतिम पंक्ति महत्वपूर्ण है। ओपी को यह तय करने की आवश्यकता है कि शामिल प्रयास की राशि इसके लायक है या नहीं।
बुरहान अली

आप सभी को धन्यवाद! ठीक है, मैं इस्तीफा दे देता हूं। मुझे लगता है कि मैं एक समझौते के रूप में गणितज्ञ 8 के साथ रहना बेहतर होगा। यह Red Hat 4.
user15964

@livingstructioncato हाय, लेकिन वॉनब्रांड के शब्द कैसे टिप्पणी करते हैं: "किसी अजीब जगह में एक नया संस्करण स्थापित करना जोखिम भरा है ... अजीब जगह पर पुस्तकालय यादृच्छिक सामान द्वारा उठाया जा सकता है, ...."। क्या यह वास्तव में जोखिम भरा है? क्या आपने कभी वह तरीका आजमाया जो आपके उत्तर में वर्णित है?
user15964

@ user15964 यह तब तक जोखिम भरा नहीं है जब तक आप इस बात पर ध्यान नहीं दे रहे हैं कि आप क्या कर रहे हैं root या आप कुछ अजीब कर रहे हैं जैसे कि अपने LD_PRELOAD को अपने सत्र init स्क्रिप्ट में बदलें और अपने आप को लॉक करें।
बाधा

@ user15964 यह भी - हाँ - मैं दिन में वापस रास्ते, रास्ता, पुनर्निर्माण किया है।
जीवित बाधा

1

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


4
लेकिन समस्या यह है कि मैं प्रशासक नहीं हूं, मेरे पास अधिकार नहीं है। यहां तक ​​कि अगर मुझे अनुमति मिली, तो मैं सिस्टम में बदलाव करने से डरता हूं, क्योंकि यह मेरा कंप्यूटर नहीं है, यह वास्तव में एक क्लस्टर है, कई लोग इस पर काम करते हैं। वैसे, दूसरी जगह नया संस्करण जोखिम भरा क्यों है? मुझे केवल उस सॉफ्टवेयर को लिंक करना होगा जो मुझे नए लिब की जरूरत थी, पूरे सिस्टम को नहीं।
user15964

1
और आप कुछ यादृच्छिक पैकेज स्थापित करने के लिए स्वतंत्र महसूस करते हैं? सिस्टम प्रशासन की नीतियां एक गंभीर संशोधन के लिए अतिदेय हैं । अजीब जगह पर लाइब्रेरी को यादृच्छिक सामान द्वारा उठाया जा सकता है, और केवल आपके आवेदन को चलाने के लिए इस्त्री करना (और इसके द्वारा शुरू की गई संभावित प्रक्रियाएं, जो मानक कार्यक्रमों को शामिल नहीं करती हैं) काफी चुनौती दे सकती हैं ...
वॉनब्रांड

1
@vonbrand - बकवास, जब तक कि हम कुछ उच्च सुरक्षा मशीन के बारे में बात नहीं कर रहे हैं (और उदाहरण के लिए कुछ साझा डेवलपर या परीक्षण मशीन / क्लस्टर नहीं), जिस स्थिति में आपको विदेशी अवास्तविक सॉफ़्टवेयर के बारे में स्वस्थ व्यामोह होने की आवश्यकता है। रैंडम ब्रेक्जिट के संदर्भ में, भरोसेमंद स्रोतों से एक अलग-थलग एप्लीकेशन प्रोग्राम स्थापित करने की तुलना में libc (सभी सिस्टम को प्रभावित करना, संभवतः सिस्टम ब्रेक्जिट को प्रभावित करना) के मामले में यह काफी अलग बात है (मैं इस धारणा से असहमत हूं कि मैथेमेटिका यादृच्छिक पैकेज है)। पाठ्यक्रम की संसाधन थकावट एक वैध चिंता का विषय है जो सक्षम sysadmin को संबोधित करना चाहिए।
FooF

@FooF, मैंने बहुत सारे मामले देखे हैं "प्रशासन सबसे अच्छी तरह से जानता है, उपयोगकर्ताओं को इस क्षेत्र में भ्रम होने के लिए वे बिना किसी समर्थन के चाहते हैं "।
वॉनब्रांड

1
@vonbrand - मैं आपकी अंतिम टिप्पणी से सहमत हूं। लेकिन मैं दृढ़ता से असहमत हूं कि एफबीआईसी को अपडेट करना या अच्छी तरह से ज्ञात सॉफ़्टवेयर स्थापित नहीं करना ("यादृच्छिक पैकेज") किसी भी तरह से तुलनीय है (कोई बुरा इरादा नहीं मानते हुए)। हम पर्यावरण और उसके उपयोगकर्ताओं की प्रकृति के बारे में बहुत कम जानते हैं ताकि किसी भी निश्चित राय को आवाज दी जा सके। सॉफ़्टवेयर डेवलपमेंट मशीनों में (कई सक्षम उपयोगकर्ताओं के साथ), यह उपयोगकर्ताओं को अपना सॉफ़्टवेयर चलाने की अनुमति देने में मदद कर सकता है । कभी-कभी यह सादा आवश्यकता होती है (OpenWRT और OpenEmbedded कि लक्षित एम्बेडेड प्लेटफ़ॉर्म स्रोतों से कुछ उपकरण बनाएंगे जिन्हें f / w छवि बनाने के लिए आवश्यक होगा)।
FooF

-3

इस विशेष उदाहरण में मैं कहूंगा कि जब तक आपके पास इस साझा प्रणाली के प्रशासकों से सहायता (और अनुमति) नहीं है, परेशान मत करो।

Mathematica विंडोज, मैक और लिनक्स पर चलता है इसलिए इसे अपने डेस्कटॉप मशीन पर स्थापित करें जहां आपको दूसरों को प्रभावित करने के बारे में चिंता करने की आवश्यकता नहीं है। यह भी अधिक संभावना है कि OS RHEL4 की तुलना में अधिक हाल का होगा और इसलिए आपको इसे स्थापित करने के लिए कोई विरोधाभास नहीं करना पड़ेगा।

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