LibGL.so.1 लोड करने में त्रुटि हुई


48

जब सॉफ्टवेयर के विभिन्न टुकड़ों (विशेष रूप से स्टीम और येनका) को चलाने का प्रयास किया जाता है, तो मैं इसके समान एक त्रुटि के साथ आया हूं: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

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

लाइब्रेरी (libGL.so.1) की शीर्ष निर्देशिका में मौजूद नहीं है /usr/lib, हालांकि, यह /usr/lib32/nvidia-currentएक सॉफ्टलिंक के रूप में मौजूद है /usr/lib32/nvidia-current/libGL.so.304.64

Ldconfig -p से आउटपुट का एक भाग:

libGL.so.1 (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/mesa/libGL.so

जाहिर है कि उस नाम वाली लाइब्रेरी को लोड किया जा रहा है, लेकिन वे अंदर स्थित हैं /usr/lib/x86_64-linux-gnu, हालांकि स्थापित सॉफ्टवेयर इसे देखने में सक्षम नहीं है। स्टीम के लिए, इसे ऑप्टिरुन के साथ चलाने से यह काम करता है, लेकिन येन्का के लिए ऐसा नहीं है। मुझे लगता है कि ऑप्टिरुन पुस्तकालय को संग्रहीत /usr/lib32/nvidia-currentकरने का कारण बनता है , जो स्टीम को चलाने की अनुमति देता है, इसलिए मैं समझ नहीं पा रहा हूं कि येनका क्यों नहीं चलेगा।

क्या कोई समझा सकता है कि सॉफ्टवेयर सामान्य मेसा लाइब्रेरी क्यों नहीं देख सकता है, और येनका एनवीडिया-वर्तमान लाइब्रेरी के साथ चलने से इनकार क्यों करता है?

जवाबों:


40

एनवीडिया ड्राइवरों के साथ स्काइप स्थापित iv86 एनवीडिया पैकेज द्वारा प्रदान की गई लिबास की तलाश में है। चूंकि यह मौजूद नहीं है, इसलिए मीसा द्वारा प्रदान किए गए i386 libGL.so.1 का उपयोग करना ठीक है।

पर परीक्षण किया गया (ubuntu-gnome raring, nvidia-325 का उपयोग करके) और (ubuntu-gnome saucy, nvidia-319 का उपयोग करके) हम निम्नलिखित द्वारा इसे ठीक करने में सक्षम थे:

update-alternatives --display i386-linux-gnu_gl_conf

यह आपको दिखाएगा कि उपलब्ध विकल्प क्या हैं।

i386-linux-gnu_gl_conf - auto mode
  link currently points to /usr/lib/nvidia-325/alt_ld.so.conf
/usr/lib/i386-linux-gnu/mesa/ld.so.conf - priority 500
  slave i386-linux-gnu_xorg_extra_modules: /usr/lib/i386-linux-gnu/xorg/x11-extra-modules
/usr/lib/nvidia-325/alt_ld.so.conf - priority 8602
Current 'best' version is '/usr/lib/nvidia-325/alt_ld.so.conf'

तो, निम्नलिखित करें:

sudo update-alternatives --config i386-linux-gnu_gl_conf

फिर सबसे अच्छा विकल्प चुनें (मैंने i386-linux-gnu / mesa / ld.so.conf का चयन किया): नीचे दिए गए आउटपुट में वैकल्पिक i386-linux-gnu_gl_conf (उपलब्ध कराने के लिए दो विकल्प हैं /etc/ld.so.conf)। घ / i386-linux-gnu_GL.conf)।

  Selection    Path                                     Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia-325/alt_ld.so.conf        8602      auto mode
  1            /usr/lib/i386-linux-gnu/mesa/ld.so.conf   500       manual mode
  2            /usr/lib/nvidia-325/alt_ld.so.conf        8602      manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/i386-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode

आपके पूरा हो जाने के बाद, दौड़ने का प्रयास करें:

sudo ldconfig

और फिर आप कर रहे हैं।


2
मेरे पास बिल्कुल वही था और इसने पूरी तरह से काम किया, बहुत बहुत धन्यवाद (उबंटू 13.10)
Xtremesupremacy3

कष्टप्रद - मेरे पास केवल ld.so.conf विकल्प है, इसलिए "लिंक समूह i386-linux-gnu_gl_conf (केवल /etc/ld.so.conf.d/i386-linux-gnu_GL.conf प्रदान करते हुए) में एक ही विकल्प है।" : /usr/lib/i386-linux-gnu/mesa/ld.so.conf। कॉन्फ़िगर करने के लिए कुछ नहीं
dez93_2000

आपने कौन से एनवीडिया पैकेज स्थापित किए हैं? क्या आपके पास libgl1-mesa-glx स्थापित है? भरोसेमंद पर libgl1-मेसा-GLX: i386 /usr/lib/i386-linux-gnu/mesa/ld.so.conf (और assocaited libGL.so.1 * पुस्तकालयों प्रदान करता है।
eurythmia

बहुत बढ़िया जवाब। मुझे Nvidia ड्राइवर पर स्विच करने के बाद Qt प्रोग्राम चलाने में त्रुटियाँ हो रही थीं - QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linkedऔर [xcb] This is most likely caused by a broken X extension library- और इसके बाद इसे क्लियर कर दिया।
मैथ्यू पढ़ें

धन्यवाद। यह 14.04 पर भी काम करता है। यह किसी अन्य कार्यक्रम को प्रभावित करने वाला नहीं है। यह होगा? जैसे एक चीज को ठीक करने से 10 अन्य टूट जाते हैं।
सुधीर खानगर

51

मैं स्काइप स्थापित करने के बाद एक ही मुद्दा रहा हूँ ... तो आप इस त्रुटि को ठीक करने के लिए या तो बात कर सकते हैं ..

1 आदेश का पालन करके एक आवेदन चलाया जाता है ... उदाहरण के लिए im चल स्काइपे ।।

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype

स्रोत

दूसरा यह कि मैंने क्या किया

sudo nano /etc/ld.so.conf.d/skype.conf

और इसमें निम्न पंक्ति जोड़ें

/usr/lib/i386-linux-gnu/mesa/

बचा कर बाहर आ जाओ

और अंत में चला

sudo ldconfig -v

मुझे आशा है कि यह आपके libGL.so.1 त्रुटि को ठीक कर देगा क्योंकि यह मेरा था

आप libGL.so.1 भी पा सकते हैं

   find / -name libGL.so.1

मैं अंत में इसे ठीक करने में कामयाब रहा। दुर्भाग्य से, मुझे याद नहीं है कि कैसे, लेकिन मुझे याद है कि इसमें लाइब्रेरी के लिए यादृच्छिक सिम्लिंक बनाना शामिल था, बहुत कुछ ldconfig चल रहा था, और फिर उपरोक्त सिमलिंक को हटा दिया गया था। सब कुछ अब ठीक काम करता है।
p0llard

यह ठीक काम! आखिरकार! इसके अलावा, मुझे याद है कि इन चरणों से पहले @ jdp407 ने क्या कहा था।
गुंडर्स M Augness

1
जबकि यह समाधान अच्छा है, यह केवल एक समय में एक ही एप्लिकेशन को संभालता है। यदि आपके पास कोई अन्य 32 बिट अनुप्रयोग हैं जिनके लिए libGL.so की आवश्यकता है, तो आपको उन अनुप्रयोगों के लिए प्रक्रिया को दोहराना होगा। अद्यतन-विकल्पों का उपयोग करके विश्व स्तर पर इस वरीयता को सेट करना सबसे अच्छा है
एराथिमिया

@ सूर्यमणि आप इसे / lib में भी कॉपी कर सकते हैं और sudo ldconfig चला सकते हैं और यह वैश्विक पहुंच होगी
कासिम

दुख की बात है मेरे लिए xubuntu पर काम नहीं करता है, "ERROR: ld.so: ऑब्जेक्ट '/usr/lib/i386-linux-gnu/mesa/libGL.so.1 LD_PRELOO से प्रीलोड नहीं किया जा सकता (साझा ऑब्जेक्ट फ़ाइल नहीं खोल सकता) : अवहेलना करना"; skype.conf आदि / dbus-1 / system.d not /ld.so.conf.d/ में है और एक अलग फ़ाइल लगती है ...
dez93_2000

12

यहाँ फिक्स काम करेगा, लेकिन एक सरल है।

अगर skypeकाम नहीं optirun skypeकरता है, लेकिन काम नहीं करता है, तो आप इसे ठीक कर सकते हैं:

sudo apt-get install bumblebee-nvidia --reinstall

(एएमडी कार्ड के साथ भौंरा का उपयोग करने वाले लोगों को समकक्ष पुन: स्थापना करने की आवश्यकता हो सकती है)।

भौंरा दोनों इस समस्या का कारण बनता है और ठीक करता है, लेकिन यह लागू होने वाला फिक्स इंस्टॉलेशन पर होता है, जब यह libGL लाइब्रेरी को एकीकृत कार्ड के साथ-साथ अधिक शक्तिशाली कार्ड के लिए उपलब्ध कराता है। यदि आप भौंरा स्थापित करते समय उन पुस्तकालयों को पहले से स्थापित नहीं किया गया था, तो ऐसा नहीं होगा, इसलिए पुन: स्थापना की आवश्यकता है। यह आपके भौंरा विन्यास को भी प्रभावित नहीं करना चाहिए, हालांकि यह स्पष्ट रूप से आपके द्वारा किए जाने के बाद जाँच के लायक है।


3
यह मेरे लिए अच्छा काम करता है ... धन्यवाद। उबंटू सूक्ति 14.04
आदित्य

1
निश्चित रूप से सबसे आसान उपाय! मुझे पता था कि इसे इंस्टॉलेशन ऑर्डर के साथ कुछ करना था क्योंकि मैंने अपने सिस्टम को दो बार हाल ही में पुनर्स्थापित किया (उबंटू 14.04 64 बिट + एनवीडिया ऑप्टिमस ग्राफिक्स कार्ड)। पहली बार मैंने पहली बार स्काइप और फिर भौंरा को स्थापित किया, जिस स्थिति में मुझे कोई समस्या नहीं थी। दूसरी बार मैंने पहली बार भौंरा और फिर स्काइप स्थापित किया और यह समस्या उत्पन्न हुई। बस भौंरा-नवविद्या को फिर से स्थापित करना जैसा कि इस उत्तर में दिखाया गया है कि समस्या हल हो गई है!
सिस्को

मैं इस बात से सहमत हूं कि यह मेरा एक बेहतर समाधान है।
सूर्योदय से

2

डेस्कटॉप प्रविष्टि संपादित करें:

sudo nano /usr/share/applications/skype.desktop

Exec को इसमें बदलें:

Exec=env PULSE_LATENCY_MSEC=60 LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1 skype %U

यह चलता है:

LD_PRELOAD=/usr/lib/i386-linux-gnu/mesa/libGL.so.1

स्केन चलाने से पहले जब आप इसे लांचर / डेस्कटॉप प्रविष्टि के साथ शुरू करते हैं।

जब तक आप इसे एप्लिकेशन लॉन्चर का उपयोग करना शुरू करते हैं, तब तक इसे ठीक चलना चाहिए।


फ़ाइल libGL.so.1उस पथ में नहीं हो सकती है (यह मेरे लिए नहीं था, डेबियन 8 / जेसी पर)। उस पथ को खोजने के लिए जिसे आपको LD_PRELOADबस अपने सिस्टम पर i386 फ़ाइल ढूंढना होगा sudo find / -name libGL.so.1 2>/dev/null:। मैं इसे पाया /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1और यह ठीक है कि के रूप में का उपयोग कर काम किया LD_PRELOAD
f.ardelian

1

मुझे यकीन नहीं है कि यह स्पष्ट करने में मदद करेगा या नहीं, लेकिन मुझे स्काइप और libGL.so.1 के साथ एक ही मुद्दा था। इसके अलावा एक आशावादी कार्ड और भौंरा के साथ 13.04 चल रहा है।

मुझे ऑप्टिरुन के बिना स्काइप चलाने का मुद्दा मिला, लेकिन इसने ठीक काम किया। मैंने अभी-अभी ऑप्टिरन के साथ चलने के लिए डेस्कटॉप फाइल को हर बार बदला और वॉयला किया। तय!


वास्तव में निश्चित नहीं है, क्योंकि आप अब स्काइप के लिए अधिक ऊर्जा-लालची कार्ड का उपयोग कर रहे हैं। वास्तव में, यदि आप प्राइमस के बजाय वर्चुअलगेल ब्रिज का उपयोग कर रहे हैं, तो आप अनिवार्य रूप से उतनी ही बिजली जलाने वाले हैं, जितना कि आपने भौंरा स्थापित नहीं किया है और हर समय एनवीडिया कार्ड का उपयोग किया है।
जॉन हैना

1

मुझे भी इसी तरह की समस्या थी और अपने 64 बिट सिस्टम पर 32 बिट के लिबास को स्थापित करके इसे हल किया: apt-get install ia32-libs


0

आधिकारिक स्टीम पेज से नवीनतम संस्करण डाउनलोड करें, इसे डाउनलोड करने से पहले इसे टर्मिनल से क्या चाहिए (यदि कोई आवश्यकता है)। भौंरा पीपा जोड़ने की तुलना में यदि आप पहले से ही नहीं थे।

sudo add-apt-repository ppa:bumblebee/stable

इसे इस कमांड से अपडेट करें:

sudo apt-get update

और स्थापित करें virtualgl(कि libgl.so.1स्टीम में मेरे लिए त्रुटि सामग्री हल हो गई)

sudo apt-get install virtualgl

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