Steam: Fehler beim Laden der gemeinsam genutzten Bibliotheken: libGL.so.1: falsche ELF-Klasse: ELFCLASS64

10

Nach der Installation des Nvidia-Treibers wird beim Versuch, Steam auszuführen, folgende Fehlermeldung angezeigt:

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

Ich fand diese Frage und eine der Antworten , die die Installation vorschlagen:

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

Ich habe bereits installiert libgl1-mesa-glx:i386. Als ich fand diese . Es wird vorgeschlagen, einen Symlink zu 32-Bit-libGL zu erstellen. Wie kann das gehen? Haben Sie weitere Vorschläge?

Olcay Ertaş
quelle
Ich kann bestätigen, dass die Neuinstallation der libgl1-Bibliothek geholfen hat. Ubuntu 14.04 x86-64, Desktop-Compiz, Grafiktreiber Nvidia für GEForce GTS 450.
Hariprasad
A sudo aptitude install libgl1-mesa-glx:i386zeigt 305 Pakete werden entfernt, und etwa 100 wird ungelöst sein. Da dies so aussieht, als würde es mein System füllen, vermute ich, dass die beste Vorgehensweise darin besteht, Ubuntu mit 64 Bibliotheken und 32-Bit-Bibliotheken oder besser einem Primärsystem für die meisten Dinge, einer 64-Bit-Installation für Spiele und einer 32-Bit-Instanz auf Dual zu booten eine eigene Partition für 32-Bit-Spiele.
Underverse

Antworten:

11

Dieses Problem auf 64-Bit-Systemen wird dadurch verursacht, /usr/libdass es früher LD_LIBRARY_PATHals /usr/lib32. Steam probiert die 64-Bit-Bibliotheken aus und beschwert sich, ohne weiter zu suchen.

Es kann jedoch durch in behoben werden, ~/Steam/steam.shaber diese Datei scheint jedes Mal, wenn Steam ausgeführt wird, auf die ursprüngliche Version zurückgesetzt zu werden.

Ich habe es behoben, indem ich ein Skript erstellt habe, das dies tut:

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

Dies steht /usr/lib32vor dem Bibliothekspfad und startet dann Steam (mit den ursprünglichen Argumenten des Skripts). Jetzt /usr/lib32befindet sich der Pfad zuvor /usr/lib, und Steam verwendet die 32-Bit-Bibliotheken erfolgreich.

Möglicherweise möchten Sie auch die Zeile hinzufügen

export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH

bis /usr/bin/steamhat es den gleichen Effekt, solange Sie es vor der allerletzten Zeile hinzufügen. Sie müssen Sudo zum Bearbeiten /usr/lib/steam.

  • Dies hat den zusätzlichen Vorteil, dass es eine bessere Lösung ist, da alles, was Steam startet (der Anwendungsmenüeintrag, Dateitypzuordnungen, URI-Zuordnungen), korrekt funktioniert.
  • Der Nachteil ist, dass /usr/bin/steames wahrscheinlich überschrieben wird, wenn Steam aktualisiert wird.

Ich verwende die letztere Methode, während ich das Skript als Backup behalte. Auf diese Weise /usr/bin/steamkann ich , wenn es überschrieben wird, die Zeile einfach erneut aus dem Skript kopieren und einfügen, um das Problem zu beheben.

Terion
quelle
7

Dies wurde behoben, indem Ringtail (xubuntu 13.04) mit nVidia 319.17-Treibern durch Hinzufügen /usr/lib32zu einer neuen Datei verringert wurde :

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

dann läuft:

$ sudo ldconfig 

Da die Datei /etc/ld.so.confenthält include /etc/ld.so.conf.d/*.conf, wird jede Datei in diesem Verzeichnis mit der Erweiterung .confanalysiert.

scheuern
quelle
Dies ist wahrscheinlich besser als jede andere Antwort.
Tek
2

Dies wurde für Mint 14 mit den neuesten 64-Bit-Nvidia-Treibern 310.32 mit der installierten 32-Bit-Treiberunterstützung behoben

/emul/ia32-linux/usr/lib 

beim Hinzufügen

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

Nach dem ersten "export"am Anfang der /usr/bin/steamDatei.

Terrigan
quelle
Die Verwendung von "Mint" als Basis wird nicht empfohlen, da Mint hier offtopisch ist, auch wenn es sich um ein Derivat von Ubuntu handelt
Thomas Ward
2

Ich bin auf das gleiche Problem gestoßen , aber mit Skype . Alle oben genannten Lösungen (Erstellen von Symlinks, Konfigurieren von LD_LIBRARY_PATH) haben bei mir nicht funktioniert.

Ich habe endlich Hilfe in dem oben bereits erwähnten Beitrag gefunden - aber mit einer anderen Lösung.

Es scheint, dass der nvidia-Updater (wenn er um Erlaubnis zur Installation von OpenGL 32-Bit-Kompatibilitätsbibliotheken gebeten hat) Fehler gemacht und entfernt hat /usr/lib/i386-linux-gnu/mesa/libGL.so.1und /usr/lib/i386-linux-gnu/mesa/libGL.so.

Die Neuinstallation der libgl1-Bibliothek hat geholfen:

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

B-Studios
quelle
1

Wenn Sie die eingeschränkte Beta-Version von Steam für Linux verwenden, würde ich dies in den Steam für Linux-Foren veröffentlichen . Sie sollten bessere Hilfe haben, und wenn es ein Problem mit der Software selbst ist, können die Entwickler es beheben. Wenn Sie ein 64-Bit-Betriebssystem verwenden, gibt es dort viele Leute, die wahrscheinlich die Probleme durchgemacht haben und daher genau wissen, was zu tun ist.

Würzen
quelle
0

Ich hatte genau das gleiche Problem mit Linux Mint Debian Edition 2 64-Bit.

Ich habe es behoben, indem ich NVIDIA-Treiber mit den 32-Bit-GL-Bibliotheken neu installiert habe (nach der Installation dieser Bibliotheken, die Steam angefordert hat).

Ich gehe nur davon aus, dass die Installation dieser anderen 32-Bit-Grafikbibliotheken einige Verknüpfungen unterbrochen hat und die Neuinstallation von NVIDIA-Treibern mit diesen echten 32-Bit-Bibliotheken das Verknüpfungsproblem behebt.

SHOTbyGUN
quelle
0

Ich hatte dieses Problem mit Skype. Ich habe das Problem behoben, indem ich den offiziellen Nvidia-Treiber erneut installiert und während der Installation eine 32-Bit-Kompatibilitätsbibliothek installiert habe.

Saeed Zarinfam
quelle