Steam: błąd podczas ładowania bibliotek współdzielonych: libGL.so.1: niepoprawna klasa ELF: ELFCLASS64

11

Po instalacji sterownika Nvidia, gdy próbuję uruchomić Steam, pojawia się ten błąd:

steam: error while loading shared libraries: libGL.so.1: wrong ELF class: ELFCLASS64

Znalazłem to pytanie i jedną z odpowiedzi sugerujących instalację:

sudo apt-get install libgl1-mesa-glx:i386

Już zainstalowałem libgl1-mesa-glx:i386. Niż znalazłem to . Sugeruje utworzenie dowiązania symbolicznego do 32-bitowej biblioteki libGL. Jak to zrobić? Czy masz jakieś inne sugestie?

Olcay Ertaş
źródło
Mogę potwierdzić, że ponowna instalacja biblioteki libgl1 pomogła. Ubuntu 14.04 x86-64, komputer stacjonarny, sterownik graficzny Nvidia dla GEForce GTS 450.
hariprasad
A sudo aptitude install libgl1-mesa-glx:i386przedstawia 305 pakiety zostaną usunięte i 100 będą rozwiązane. Ponieważ wygląda na to, że zapełni mój system, podejrzewam, że najlepszym rozwiązaniem jest uruchomienie systemu Ubuntu z podwójnym uruchomieniem z 64 bibliotekami i biblioteką 32-bitową, lub lepiej, jednym podstawowym systemem dla większości rzeczy, jedną instalacją 64-bitową dla gier i instancją 32-bitową własną partycję dla gier 32-bitowych.
Podkreślenie

Odpowiedzi:

11

Ten problem w systemach 64-bitowych jest spowodowany tym, /usr/libże jest wcześniejszy LD_LIBRARY_PATHniż /usr/lib32. Steam wypróbowuje 64-bitowe biblioteki i narzeka, nie szukając dalej.

Można to jednak naprawić, ~/Steam/steam.shale plik wydaje się przywracany do oryginalnej wersji przy każdym uruchomieniu Steam.

Naprawiłem to, tworząc skrypt, który to robi:

#!/bin/bash
export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH
steam $*

To poprzedza /usr/lib32ścieżkę do biblioteki, a następnie uruchamia steam (z oryginalnymi argumentami skryptu). Teraz /usr/lib32znajduje się na ścieżce wcześniej /usr/lib, a steam z powodzeniem użyje bibliotek 32-bitowych.

Możesz także dodać linię

export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH

do /usr/bin/steam, będzie mieć taki sam skutek, jak długo, jak dodać go przed ostatniej linii. Musisz edytować sudo /usr/lib/steam.

  • Ma to dodatkową zaletę, że jest to lepsza poprawka, ponieważ wszystko, co uruchamia steam (pozycja menu aplikacji, powiązania typów plików, powiązania URI) będzie działać poprawnie.
  • Wadą jest to, że /usr/bin/steamprawdopodobnie zostanie zastąpione, gdy para zostanie zaktualizowana.

Używam tej drugiej metody, zachowując skrypt jako kopię zapasową. W ten sposób, jeśli /usr/bin/steamzostanie zastąpiony, mogę po prostu skopiować ponownie wklej wiersz ze skryptu, aby go naprawić.

Terion
źródło
7

Naprawiono to w raring ringtail (xubuntu 13.04) ze sterownikami nVidia 319.17 poprzez dodanie /usr/lib32do nowego pliku:

$ sudo nano /etc/ld.so.conf.d/lib32.conf

następnie uruchomiony:

$ sudo ldconfig 

Ponieważ plik /etc/ld.so.confzawiera include /etc/ld.so.conf.d/*.conf, każdy plik w tym katalogu z rozszerzeniem .confjest analizowany.

kark
źródło
Jest to prawdopodobnie lepsze niż jakakolwiek inna odpowiedź.
Tek
2

Naprawiono to dla Mint 14 z najnowszymi 64-bitowymi sterownikami Nvidia 310.32 z zainstalowaną obsługą 32-bitowych sterowników

/emul/ia32-linux/usr/lib 

poprzez dodanie

export LD_LIBRARY_PATH=/emul/ia32-linux/usr/lib:$LD_LIBRARY_PATH 

Po pierwszym "export"na początku /usr/bin/steampliku.

terrigan
źródło
Używanie „Mint” jako podstawy nie jest zalecane, ponieważ Mint jest tutaj nie na temat, nawet jeśli jest pochodną Ubuntu
Thomas Ward
2

Natknąłem się na ten sam problem, ale ze skype . Wszystkie powyższe rozwiązania (tworzenie dowiązań symbolicznych, konfigurowanie LD_LIBRARY_PATH) nie działały dla mnie.

W końcu znalazłem pomoc we wspomnianym już poście - ale z innym rozwiązaniem.

Wygląda na to, że aktualizator nvidia (pytając o pozwolenie na zainstalowanie bibliotek kompatybilności z 32-bitową biblioteką OpenGL) pomylił się i usunął /usr/lib/i386-linux-gnu/mesa/libGL.so.1i /usr/lib/i386-linux-gnu/mesa/libGL.so.

Ponowna instalacja biblioteki libgl1 pomogła:

sudo apt-get install --reinstall libgl1-mesa-glx:i386

studia typu b
źródło
1

Jeśli używasz wersji beta ograniczonej do Steam dla Linuksa, zamieściłbym to na forach Steam dla Linuksa . Powinni mieć lepszą pomoc, a jeśli jest to problem z samym oprogramowaniem, programiści będą mogli to naprawić. Ponadto, jeśli używasz 64-bitowego systemu operacyjnego, istnieje wiele osób, które prawdopodobnie przeszły przez twoje problemy, a zatem wiedzą dokładnie, co zrobić.

Przyprawa
źródło
0

Miałem dokładnie ten sam problem na 64-bitowej wersji Linux Mint Debian Edition 2.

Rozwiązałem to przez ponowną instalację sterowników NVIDIA z 32-bitowymi bibliotekami GL (po instalacji tych bibliotek zażądano steam).

Zakładam tylko, że zainstalowanie tych innych 32-bitowych bibliotek graficznych zepsuło pewne połączenia, a ponowna instalacja sterowników NVIDIA z tymi prawdziwymi bibliotekami 32-bitowymi rozwiązuje problem z łączeniem.

SHOTbyGUN
źródło
0

Miałem ten problem ze Skype. Naprawiłem to, instalując ponownie oficjalny sterownik Nvidia i instalując 32-bitową bibliotekę kompatybilności podczas instalacji.

Saeed Zarinfam
źródło