Pertanyaan Kesalahan memuat libGL.so.1


Ketika mencoba untuk menjalankan berbagai perangkat lunak (terutama Steam dan Yenka), saya menemukan kesalahan yang serupa dengan ini: error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Saya menjalankan sistem 64 bit, dengan kartu NVidia Optimus (saya dual boot untuk perangkat lunak khusus windows tertentu yang memerlukan kartu grafis khusus). Saya telah menginstal bumblebee, dan saya menggunakan driver nvidia-saat ini, lebih tepatnya yang diunduh dari NVidia, seperti yang direkomendasikan.

Perpustakaan (libGL.so.1) tidak ada di direktori teratas /usr/lib, namun hadir di /usr/lib32/nvidia-current, sebagai tautan lunak ke /usr/lib32/nvidia-current/libGL.so.304.64.

Bagian dari output dari 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

Tentunya sebuah perpustakaan dengan nama itu sedang dimuat, tetapi mereka berada di /usr/lib/x86_64-linux-gnuNamun, perangkat lunak yang diinstal tampaknya tidak dapat 'melihat' itu. Untuk Steam, menjalankannya dengan optirun menyebabkannya berfungsi, tetapi ini tidak berlaku untuk Yenka. Saya berasumsi bahwa optirun menyebabkan perpustakaan disimpan dalam /usr/lib32/nvidia-current untuk digunakan, yang memungkinkan Steam untuk dijalankan, jadi saya tidak dapat mengerti mengapa Yenka tidak akan berjalan.

Adakah yang bisa menjelaskan mengapa perangkat lunak tidak dapat melihat pustaka mesa yang normal, dan mengapa Yenka menolak untuk menjalankan pustaka nvidia saat ini?


47
2018-02-18 19:52


asal




Jawaban:


Dengan driver nvidia terpasang skype sedang mencari lib i386 yang disediakan oleh paket nvidia. Karena itu tidak ada, tidak apa-apa untuk menggunakan libbor i386 yang disediakan oleh mesa.

Diuji pada (ubuntu-gnome raring, menggunakan nvidia-325) dan (ubuntu-gnome cakep, menggunakan nvidia-319) kami mampu memperbaikinya dengan cara berikut:

update-alternatives --display i386-linux-gnu_gl_conf

Ini akan menunjukkan kepada Anda apa saja opsi yang tersedia.

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'

jadi, lakukan hal berikut:

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

kemudian pilih alternatif terbaik (saya memilih i386-linux-gnu / mesa / ld.so.conf): Pada output di bawah ini ada dua pilihan untuk alternatif i386-linux-gnu_gl_conf (menyediakan /etc/ld.so.conf.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

Setelah Anda menyelesaikannya, coba jalankan:

sudo ldconfig

dan kemudian selesai.


39
2017-07-20 20:10



Saya memiliki hal yang sama dan ini bekerja dengan sempurna, terima kasih banyak (Ubuntu 13.10) - Xtremesupremacy3
menjengkelkan - Saya hanya memiliki opsi ld.so.conf, jadi dapatkan "Hanya ada satu alternatif di grup tautan i386-linux-gnu_gl_conf (menyediakan /etc/ld.so.conf.d/i386-linux-gnu_GL.conf) : /usr/lib/i386-linux-gnu/mesa/ld.so.conf. Tidak ada yang perlu dikonfigurasi. " - dez93_2000
paket nvidia mana yang sudah Anda pasang? Apakah Anda menginstal libgl1-mesa-glx? Pada libgl1-mesa-glx yang tepercaya: i386 menyediakan /usr/lib/i386-linux-gnu/mesa/ld.so.conf (dan libraries libGL.so.1 * assocaited. - eurythmia
Jawaban yang bagus. Saya mendapatkan kesalahan menjalankan program Qt setelah beralih ke driver Nvidia - QOpenGLShaderProgram::uniformLocation( matrix ): shader program is not linked dan [xcb] This is most likely caused by a broken X extension library - dan setelah ini dibersihkan. - Matthew Read
Terima kasih. Ia bekerja pada 14.04 juga. Ini tidak akan memengaruhi program lain. Akankah itu? Seperti memperbaiki satu hal istirahat 10 lainnya. - Sudhir Khanger


Saya mengalami masalah yang sama setelah menginstal skype ... sehingga Anda dapat melakukan berbagai hal untuk memperbaiki kesalahan ini ..

Yang pertama menjalankan aplikasi dengan mengikuti perintah ... misalnya menjalankan skype ..

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

S O U R C E

2 bahwa apa yang saya lakukan

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

dan tambahkan baris berikut di dalamnya

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

simpan & keluar

dan terakhir lari

sudo ldconfig -v

Saya harap ini akan memperbaiki Anda libGL.so.1 kesalahan seperti yang saya lakukan

Anda juga dapat menemukan libGL.so.1

   find / -name libGL.so.1

51
2018-03-21 04:17



Saya berhasil memperbaikinya pada akhirnya. Sayangnya, saya tidak ingat caranya, tetapi saya ingat itu terdiri dari membuat symlink acak ke pustaka, menjalankan ldconfig banyak, dan kemudian menghapus symlink tersebut. Semuanya berfungsi dengan baik sekarang. - p0llard
Ini bekerja dengan baik! Akhirnya! Juga, saya ingat melakukan apa yang @ jdp407 katakan sebelum langkah-langkah ini. - Gundars Mēness
Sementara solusi ini bagus, hanya menangani aplikasi satu per satu. Jika Anda memiliki aplikasi 32 bit lain yang memerlukan libGL.so, maka Anda harus mengulang proses untuk aplikasi tersebut. Sebaiknya setel preferensi ini secara global menggunakan pembaruan-alternatif - eurythmia
@eurythmia Anda juga dapat menyalinnya di / lib dan menjalankan sudo ldconfig dan itu akan menjadi akses global - Qasim
sayangnya tidak bekerja untuk saya di xubuntu, "ERROR: ld.so: object '/usr/lib/i386-linux-gnu/mesa/libGL.so.1' dari LD_PRELOAD tidak dapat dimuat (tidak bisa membuka file objek bersama) : diabaikan "; skype.conf ada di etc / dbus-1 / system.d not /ld.so.conf.d/ dan terlihat menjadi file yang berbeda ... - dez93_2000


Perbaikan di sini akan berfungsi, tetapi ada yang lebih sederhana.

Jika skype tidak berfungsi tetapi optirun skype berfungsi, maka Anda dapat memperbaikinya dengan:

sudo apt-get install bumblebee-nvidia --reinstall

(Orang yang menggunakan Bumblebee dengan kartu AMD mungkin perlu melakukan pemasangan ulang yang sepadan).

Bumblebee menyebabkan dan memperbaiki masalah ini, tetapi memperbaikinya berlaku saat penginstalan, ketika itu membuat liblib perpustakaan tersedia untuk kartu terintegrasi serta kartu yang lebih kuat. Ini tidak akan terjadi jika pustaka tersebut belum diinstal ketika Anda menginstal Bumblebee, sehingga perlu instalasi ulang. Seharusnya tidak memengaruhi konfigurasi bumblebee Anda, meskipun jelas perlu dicek setelah Anda melakukan ini.


12
2018-04-27 12:41



ini bekerja dengan baik untuk saya ... terima kasih. Ubuntu gnome 14.04 - aditia
Pasti solusi termudah! Saya tahu itu ada hubungannya dengan perintah instalasi karena saya menginstal ulang sistem saya dua kali terakhir (Ubuntu 14.04 64bit + kartu grafis Nvidia Optimus). Pertama kali saya pertama kali menginstal Skype dan kemudian Bumblebee, dalam hal ini saya tidak punya masalah. Kali kedua saya pertama kali menginstal Bumblebee dan kemudian Skype dan masalah ini muncul. Cukup menginstal ulang bumblebee-nvidia seperti yang ditunjukkan dalam jawaban ini memecahkan masalah! - Sicco
Saya cenderung setuju bahwa ini sepertinya solusi yang lebih baik dari saya. - eurythmia


Saya tidak yakin apakah ini akan membantu memperjelas atau tidak tetapi saya memiliki masalah yang sama dengan skype dan libGL.so.1. Juga menjalankan 13.04 dengan kartu optimus dan bumblebee.

Saya mendapat masalah menjalankan skype tanpa optirun, tetapi bekerja dengan baik. Saya baru saja mengubah file desktop untuk dijalankan dengan optirun setiap kali dan voila. tetap!


1
2017-09-09 22:54



Tidak benar-benar diperbaiki, karena Anda sekarang menggunakan kartu yang lebih hemat energi untuk skype. Memang, jika Anda menggunakan jembatan VirtualGL daripada primus, Anda pada dasarnya akan membakar kekuatan sebanyak jika Anda tidak memasang bumblebee dan hanya menggunakan kartu nvidia sepanjang waktu. - Jon Hanna


Saya memiliki masalah yang sama dan memecahkannya dengan menginstal 32bit libs pada sistem 64-bit saya: apt-get install ia32-libs


1
2017-12-21 03:53





Edit entri desktop:

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

Ubah Exec ke:

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

Ini berjalan:

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

sebelum menjalankan skype saat Anda memulainya dengan entri peluncur / desktop.

Ini harus berjalan baik setelah itu selama Anda memulainya menggunakan peluncur aplikasi.


1
2017-12-17 18:20



Berkas libGL.so.1 mungkin tidak di jalan itu (bukan untuk saya, di Debian 8 / Jessie). Untuk menemukan jalan yang harus Anda letakkan LD_PRELOAD cukup temukan file i386 di sistem Anda: sudo find / -name libGL.so.1 2>/dev/null. Saya menemukannya di /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 dan itu bekerja dengan baik menggunakan itu sebagai LD_PRELOAD. - f.ardelian


Unduh versi terbaru dari halaman resmi uap, daripada membiarkannya mengunduh apa yang dibutuhkan dari terminal (jika ada kebutuhan). daripada menambahkan bumblebee ppa jika Anda belum melakukannya.

sudo add-apt-repository ppa:bumblebee/stable

perbarui dengan perintah ini:

sudo apt-get update

dan instal virtualgl(yang memecahkan libgl.so.1 kesalahan untuk saya di Steam)

sudo apt-get install virtualgl

0
2018-04-28 19:20