सेंटोस 6.5 में 2.14 को ग्लिब कैसे अपडेट करें


47

मैं अपने CentOS 6.5 मशीन पर Android NDK इंस्टॉल करना चाहता हूं। लेकिन जब मैंने कार्यक्रम चलाया, तो यह कहता है कि इसे चलाने में सक्षम होने के लिए 2.14 ग्लिबक की आवश्यकता है। मेरे CentOS 6.5 में केवल Glibc 2.12 है। इसलिए मैंने glibc को अपडेट करने की कोशिश की:

$ sudo yum update glibc

लेकिन उसके बाद मैंने पाया कि glibc संस्करण अभी भी 2.12 है, न कि 2.14।

$ ldd --version
ldd (GNU libc) 2.12

मुझे लगता है कि glibc 2.14 CentOS रिपॉजिटरी पर उपलब्ध नहीं हो सकता है। तो कैसे मैं इसे CentOS 6.5 पर 2.14 glibc में अपडेट कर सकता हूं?


2
CentOS7 को अपग्रेड करना आसान है जिसमें GLibC 2.14 शामिल है। GLibC को 2.12 से 2.14 में अपग्रेड करना है। देखें स्काइप कॉल रिकॉर्डर
eyoung100

@ eyoung100 मुझे अब भी CentOS 6.5 की आवश्यकता है। 7. इसके बजाय Glibc को 2.14 में अपग्रेड करने का एक आसान तरीका है? धन्यवाद!
टोंगा


आपके उत्तरों के आधार पर, ऐसा लगता है कि सबसे अच्छा समाधान या तो CentOS 7 में अपग्रेड हो जाएगा या NDK के पुराने संस्करण का उपयोग करना होगा जिसके लिए glibc 2.12 की आवश्यकता है। आपकी टिप्पणियों के लिए आभार।
टोंगा

1
तुम भी में NDK चलाने के लिए एक CentOS7 chroot स्थापित कर सकता है।
derobert

जवाबों:


68

आप अद्यतन नहीं कर सकते glibcपर Centos 6सुरक्षित रूप से। हालाँकि आप इसके 2.14साथ 2.12आसानी से स्थापित कर सकते हैं, फिर इसका उपयोग परियोजनाओं को संकलित करने के लिए करें आदि इस प्रकार है:

mkdir ~/glibc_install; cd ~/glibc_install 

wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz

tar zxvf glibc-2.14.tar.gz

cd glibc-2.14

mkdir build

cd build

../configure --prefix=/opt/glibc-2.14

make -j4

sudo make install

export LD_LIBRARY_PATH="/opt/glibc-2.14/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

3
उल्लेख करना चाहते हैं, कि निर्माण प्रक्रिया धीमी AWS पर 2.5 घंटे लगते हैं। हो सकता है कि किसी को अगली जानकारी के लिए उपयोगी: फ़िक्सेस psycopg2समस्या से ऊपर निर्देश ImportError: /lib/libc.so.6: version 'GLIBC_2.14'(मैं Centos 6.5 और PostgreSQL v 9.6 का उपयोग करता हूं)
टाइटनफाइटर

1
शानदार जवाब! मैंने इस उत्तर का बिल्कुल पालन किया और यह एक आकर्षण की तरह काम करता है। धन्यवाद
thonnor

2
बाद के संस्करणों के लिए भी इस्तेमाल किया जा सकता है; बस "2.14" को "2.23" या जिस भी संस्करण की आपको आवश्यकता है उसे बदल दें, जैसे कि चीजों द्वारा हाइलाइट किया गया है: /usr/local/lib/somlelib.so: undefined reference to 'somefunction@GLIBC_2.23'(अंतिम कुछ अंक संस्करण हैं)। संकलन को तेज करने के लिए, मेक -j8 का उपयोग करें यदि आपके पास अपने सीपीयू पर 8 धागे हैं आदि कुछ ही मिनटों में पूरा हो गया।
Roel Van de Paar

मैं relocation error: libc.so.6: symbol _dl_find_dso_for_object, version GLIBC_PRIVATE not defined in file ld-linux-x86-64.so.2 with link time referenceनिर्यात चरण के बाद (जब कोई आदेश देने की कोशिश कर रहा हूँ) बचा हुआ हूँ । क्या कोई मदद कर सकता है? @ रोल
बेला

1
धन्यवाद आदमी, के रूप में की उम्मीद पर काम किया CENTOS 6.10। मैंने रूट करते समय इस लाइन sudo make installको बदल दिया make install, क्योंकि मेरा उपयोगकर्ता sudoers फ़ाइल में नहीं था
अकाउंटेंट م

7

2.14 समानांतर में स्थापित करने के लिए, कॉन्फ़िगर उपसर्ग जोड़ें:

tar zxvf glibc-2.14.tar.gz
cd glibc-2.14
mkdir build
cd build
../configure --prefix=/opt/glibc-2.14
make -j4
make install

इस प्रक्रिया का अनुसरण करते हुए, आप 2.14 का निर्माण करने में सक्षम होंगे, लेकिन आपको संकलक को यह बताना होगा कि ग्लिबक कहां देखना है।

नीचे ऐसे तरीके दिए गए हैं जिनसे आप अपने प्रोग्राम के लिए glibc को उजागर कर सकते हैं।

  1. LD_LIBRARY_PATH = / opt / glibc-2.14 / lib

    निर्यात LD_LIBRARY_PATH।

    लाइब्रेरी आपके वर्तमान लॉगिन सत्र के दौरान उजागर होती है।

  2. आप अपने नए glibc संस्करण को स्थायी रूप से इस तरह लिंक कर सकते हैं, लेकिन कृपया नीचे दी गई चेतावनी पढ़ें:

    ln -sf /opt/glibc-2.14/glibc-2.14.so /lib/libc.so.6।

चूंकि libc.so.6 केवल एक प्रतीकात्मक लिंक है। उपरोक्त कमांड को निष्पादित करने से नए ग्लिबेक लाइब्रेरी की ओर लिंक बिंदु बन जाएगा। हालाँकि यह कदम अनुशंसित नहीं है क्योंकि लिनक्स में कई कार्यक्रम हैं जो पुराने संस्करणों पर निर्भर हैं और काम करना बंद कर देंगे।


पुस्तकालय को उजागर करने के विवरण के लिए +1
लेखाकार

2

सामान्य वैकल्पिक तकनीक। GLIBC 2.14 को समानांतर में स्थापित करना (इसे / ऑप्ट निर्देशिका में शामिल करें) तब यह उन कार्यक्रमों के लिए उपलब्ध है, जिन्हें आपके कोर ओएस को तोड़ने के बिना इसकी आवश्यकता होती है।


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