LibGL.so.1 yüklerken hata


48

Çeşitli yazılımları çalıştırmaya çalışırken (özellikle Steam ve Yenka), buna benzer bir hatayla karşılaştım: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Bir NVidia Optimus kartı ile 64 bit bir sistem kullanıyorum (yalnızca belirli bir grafik kartı gerektiren bazı pencereler için çift önyükleme yapıyorum). Bombus arısı kurdum ve NVIDIA'dan indirildiği şekilde nvidia'nın güncel sürücüsünü kullanıyorum.

Kütüphane (libGL.so.1), üst dizininde mevcut değildir /usr/lib, ancak içinde /usr/lib32/nvidia-currentbir softlink olarak mevcuttur /usr/lib32/nvidia-current/libGL.so.304.64.

Ldconfig -p'den çıktının bir bölümü:

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

Açıkçası, bu ada sahip bir kütüphane yükleniyor, ancak bunlar yerleştirilmiş /usr/lib/x86_64-linux-gnu, ancak yüklü yazılım onu ​​'göremiyor' gibi görünüyor. Steam için optirun ile çalıştırmak, çalışmasına neden olur, ancak Yenka için durum böyle değildir. /usr/lib32/nvidia-currentOptirun'un depolanan kütüphanenin kullanılmasına neden olduğunu ve bu sayede Steam'in çalışmasına izin verdiğini, dolayısıyla Yenka'nın neden çalışmadığını anlayamadığımı farz ediyorum.

Yazılımın neden normal mesa kütüphanesini göremediğini ve Yenka nvidia'nın güncel kütüphanesiyle çalışmayı reddettiğini kimse açıklayabilir mi?

Yanıtlar:


40

Nvidia sürücüleri ile skype, nvidia paketi tarafından sağlanan bir i386 kütüphanesini arıyor. Bu olmadığı için, mesa tarafından sağlanan i386 libGL.so.1.

(Ubuntu-gnome saldırısı, nvidia-325 kullanılarak) ve (ubuntu-gnome saucy, nvidia-319 kullanarak) üzerinde test ettik:

update-alternatives --display i386-linux-gnu_gl_conf

Bu size mevcut seçeneklerin ne olduğunu gösterecektir.

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'

yani, aşağıdakileri yapın:

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

daha sonra en iyi alternatifi seçin (i386-linux-gnu / mesa / ld.so.conf seçtim): Aşağıdaki çıktıda alternatif i386-linux-gnu_gl_conf (/etc/ld.so.conf sağlar) için iki seçenek vardır. D / 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

Bunu tamamladıktan sonra koşmayı deneyin:

sudo ldconfig

ve sonra işin bitti.


2
Aynısını yaptım ve bu mükemmel bir şekilde çalıştı, çok teşekkürler (Ubuntu 13.10)
Xtremesupremacy3 4:13

can sıkıcı - Ben sadece ld.so.conf seçeneğim var, bu yüzden "i386-linux-gnu_gl_conf link grubunda sadece bir alternatif var (/etc/ld.so.conf.d/i386-linux-gnu_GL.conf sağlar) : /usr/lib/i386-linux-gnu/mesa/ld.so.conf. Yapılandırılacak bir şey yok. "
dez93_2000

hangi nvidia paketlerini kurdunuz? Libgl1-mesa-glx kurulu mu? Güvenilir libgl1-mesa-glx'de: i386, /usr/lib/i386-linux-gnu/mesa/ld.so.conf (ve associted libGL.so.1 * kitaplıklarını sağlar)
eurythmia

Mükemmel cevap. Nvidia sürücüsüne geçtikten sonra bir Qt programını çalıştırırken hatalar alıyordum - QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linkedve [xcb] This is most likely caused by a broken X extension library- sonra bunu temizledim.
Matthew

Teşekkürler. 14.04 de çalışıyor. Bu başka hiçbir programı etkilemeyecek. Olacak mı? Bir şeyi tamir etmek gibi 10 tane daha kırmak gibi.
Sudhir Khanger

51

Skype kurduktan sonra aynı sorunu yaşıyorum ... bu yüzden bu hatayı düzeltmek için iki şeyi de yapabilirsiniz ..

İlki, komutu izleyerek uygulamayı çalıştırır ... örneğin im skype çalıştırıyorum ..

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

KAYNAK

2. yaptığım şey

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

ve içine aşağıdaki satırı ekleyin

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

kaydet çık

ve son olarak koş

sudo ldconfig -v

umarım bu benim yaptığım gibi libGL.so.1 hatasını düzeltecektir

Ayrıca libGL.so.1 adresini de bulabilirsiniz.

   find / -name libGL.so.1

Sonunda düzeltmeyi başardım. Ne yazık ki, nasıl olduğunu hatırlayamıyorum, fakat hatırlıyorum ki, kütüphaneye rastgele sembolik bağlantılar oluşturuyor, ldconfig'i çok çalıştırıyor ve ardından yukarıda belirtilen sembolik bağları kaldırıyordu. Artık her şey yolunda gidiyor.
p0llard

Bu iyi çalıştı! En sonunda! Ayrıca, @ jdp407'nin bu adımlardan önce söylediklerini yaptığımı hatırlıyorum.
Gundars Mēness

1
Bu çözüm iyi olsa da, uygulamaları bir defada yalnızca bir kez kullanır. LibGL.so gerektiren başka bir 32 bit uygulamanız varsa, bu uygulamalar için işlemi tekrarlamanız gerekecektir. Güncelleme alternatiflerini kullanarak bu tercihi küresel olarak belirlemek en iyisidir
eurythmia

@eurythmia Ayrıca / lib içine kopyalayabilir ve sudo ldconfig komutunu çalıştırabilirsiniz. Ayrıca küresel erişim olacaktır
Qasim

ne yazık ki benim için xubuntu'da çalışmıyor, "ERROR: ld.so: LD_PRELOAD'dan '/usr/lib/i386-linux-gnu/mesa/libGL.so.1' nesnesi önceden yüklenemez (paylaşılan nesne dosyasını açamaz) : yoksayıldı "; skype.conf etc / dbus-1 / system.d değil /ld.so.conf.d/ içindedir ve farklı bir dosya gibi
görünmektedir

12

Buradaki düzeltmeler işe yarayacak, ama daha basit bir sorun var.

Eğer skypeişe vermez optirun skypeişliyor, o zaman ile düzeltebilirsiniz:

sudo apt-get install bumblebee-nvidia --reinstall

(AMD kartlarıyla Bumblebee kullanan kişiler, eşdeğer yeniden yüklemeyi yapmaları gerekebilir).

Bumblebee bu soruna hem neden olur hem de giderir, ancak uyguladığı düzeltme, libGL kitaplıklarını entegre kartın yanı sıra daha güçlü bir kart için de kullanılabilir duruma getirdiğinde kurulum sırasında gerçekleşir. Bu, Bumblebee'yi kurduğunuzda bu kütüphanelerin henüz kurulmamış olması durumunda gerçekleşmez, bu nedenle yeniden yüklemeye ihtiyaç duyar. Yaban arısı konfigürasyonunuzu da etkilememelidir, ancak bunu yaptıktan sonra kontrol etmeye değer.


3
benim için iyi çalışıyor ... teşekkürler. Ubuntu
cücesi 14.04

1
Kesinlikle en kolay çözüm! Sistemimi son zamanlarda iki kez yeniden kurduğumda kurulum siparişiyle ilgili bir şey olduğunu biliyordum (Ubuntu 14.04 64bit + Nvidia Optimus grafik kartı). İlk kez Skype'ı ve ardından Bumblebee'yi ilk kurduğumda, bu durumda hiçbir sorun yaşamadım. İlk kez Bumblebee'yi ve ardından Skype'ı kurduğumda bu problem ortaya çıktı. Sadece bumblebee-nvidia'yı bu cevapta gösterildiği gibi tekrar yüklemek sorunu çözdü!
Sicco,

Bunun benimkinden daha iyi bir çözüm gibi göründüğünü kabul etmeye meyilliyim.
eurythmia 16:15

2

Masaüstü girişini düzenleyin:

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

Exec'i şu şekilde değiştirin:

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

Bu çalışır:

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

skype'ı çalıştırmadan önce başlatıcı / masaüstü girişiyle başlattığınızda.

Uygulama başlatıcısını kullanarak başlattığınız sürece, daha sonra iyi çalışması gerekir.


Dosya libGL.so.1bu yolda olmayabilir (benim için değildi, Debian 8 / Jessie'de). Eğer koymak gerekir yolunu bulmak için LD_PRELOADbasitçe sisteminizde i386 dosyayı bulmak: sudo find / -name libGL.so.1 2>/dev/null. Onu buldum /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1ve bu şekilde kullanarak iyi çalıştı LD_PRELOAD.
f.ardelian

1

Bunun netleşmesine yardımcı olup olmayacağından emin değilim ama skype ve libGL.so.1 ile aynı sorunu yaşadım. Ayrıca optimus kartı ve yaban arısı ile 13.04 çalışıyor.

Optirun olmadan skype çalışan sorun var, ancak iyi çalıştı. Sadece her seferinde optirun ve voila ile çalışacak olan masaüstü dosyasını değiştirdim. sabit!


Gerçekten sabit değil, çünkü skype için daha fazla açgözlü kartı kullanıyorsunuz. Aslında, primus yerine VirtualGL köprüsünü kullanıyorsanız, aslında yaban arısı kurulmamış gibi güç harcayacaksınız ve sadece nvidia kartını her zaman kullanacaksınız.
Jon Hanna

1

Benzer bir sorun yaşadım ve 64bit sistemime 32bit libs yükleyerek çözdüm: apt-get install ia32-libs


0

Terminalden neye ihtiyacı varsa indirmesini sağlamak yerine, resmi buhar sayfasından en son sürümü indirin. daha önce yapmadıysanız, yaban arısı ppa ekleyin.

sudo add-apt-repository ppa:bumblebee/stable

bu komutla güncelle:

sudo apt-get update

ve kurun virtualgl(bu libgl.so.1benim için Steam’deki hatayı çözdü )

sudo apt-get install virtualgl

0

Deneyin:

sudo apt-get install libgl1-mesa-glx-lts-utopic:i386
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.