Steam: erreur lors du chargement des bibliothèques partagées: libGL.so.1: mauvaise classe ELF: ELFCLASS64

11

Après l'installation du pilote Nvidia lorsque j'essaie d'exécuter Steam, j'obtiens cette erreur:

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

J'ai trouvé cette question et l'une des réponses qui suggèrent d'installer:

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

J'ai déjà installé libgl1-mesa-glx:i386. Que j'ai trouvé ça . Il suggère de créer un lien symbolique vers libGL 32 bits. Comment faire ça? Avez-vous d'autres suggestions?

Olcay Ertaş
la source
Je peux confirmer que la réinstallation de la bibliothèque libgl1 a aidé. Ubuntu 14.04 x86-64, bureau compiz, pilote graphique Nvidia pour GEForce GTS 450.
hariprasad
Un sudo aptitude install libgl1-mesa-glx:i386indique que 305 paquets seront supprimés et environ 100 ne seront pas résolus. Comme cela semble remplir mon système, je soupçonne que la meilleure solution consiste à double démarrage d'Ubuntu avec 64 bibliothèques et une bibliothèque 32 bits, ou mieux, un système principal pour la plupart des choses, une installation 64 bits pour les jeux et une instance 32 bits sur sa propre partition pour les jeux 32 bits.
Underverse

Réponses:

11

Ce problème sur les systèmes 64 bits est causée par /usr/libêtre plus tôt dans la LD_LIBRARY_PATHque /usr/lib32. Steam essaie les bibliothèques 64 bits et se plaint, sans chercher plus loin.

Il peut cependant être corrigé par in ~/Steam/steam.shmais ce fichier semble être restauré à la version originale à chaque exécution de Steam.

Je l'ai corrigé en créant un script qui fait ceci:

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

Cela précède /usr/lib32le chemin de la bibliothèque, puis démarre Steam (avec les arguments d'origine du script). Maintenant /usr/lib32se trouve dans le chemin précédent /usr/lib, et Steam utilisera avec succès les bibliothèques 32 bits.

Vous pouvez également ajouter la ligne

export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH

à /usr/bin/steam, il aura le même effet, tant que vous l'ajoutez avant la toute dernière ligne. Vous aurez besoin de sudo pour éditer /usr/lib/steam.

  • Cela a l'avantage supplémentaire que c'est une meilleure solution, car tout ce qui démarre Steam (l'entrée de menu d'application, les associations de types de fichiers, les associations d'URI) fonctionnera correctement.
  • L'inconvénient est qu'il /usr/bin/steamest susceptible d'être remplacé lors de la mise à jour de Steam.

J'utilise cette dernière méthode, tout en conservant le script comme sauvegarde. De cette façon, en cas d' /usr/bin/steamécrasement, je peux simplement copier-coller à nouveau la ligne du script pour la corriger.

Terion
la source
7

Correction de ce problème dans un ringtail rare (xubuntu 13.04) avec les pilotes nVidia 319.17 en ajoutant /usr/lib32à un nouveau fichier:

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

puis en cours d'exécution:

$ sudo ldconfig 

Étant donné que le fichier /etc/ld.so.confcontient include /etc/ld.so.conf.d/*.conf, tout fichier dans ce répertoire avec l'extension .confest analysé.

éraflure
la source
C'est probablement mieux que toutes les autres réponses.
Tek
2

Correction de cela pour Mint 14 avec les nouveaux pilotes Nvidia 64 bits 310.32 avec le support de pilote 32 bits installé dans

/emul/ia32-linux/usr/lib 

en ajoutant

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

Après le premier "export"au début du /usr/bin/steamfichier.

terrigan
la source
L'utilisation de "Mint" comme base n'est pas suggérée, car Mint est hors sujet ici, même s'il s'agit d'un dérivé d'Ubuntu
Thomas Ward
2

J'ai rencontré le même problème, mais avec skype . Toutes les solutions ci-dessus (création de liens symboliques, configuration de LD_LIBRARY_PATH) ne fonctionnaient pas pour moi.

J'ai finalement trouvé de l'aide dans le message déjà mentionné ci-dessus - mais avec une solution différente.

Il semble que le programme de mise à jour nvidia (lorsqu'il a demandé l'autorisation d'installer des bibliothèques de compatibilité OpenGL 32 bits) ait foiré et supprimé /usr/lib/i386-linux-gnu/mesa/libGL.so.1et /usr/lib/i386-linux-gnu/mesa/libGL.so.

La réinstallation de la bibliothèque libgl1 a aidé:

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

b-studios
la source
1

Si vous utilisez la version bêta limitée de Steam pour Linux, je publierais cela sur les forums Steam pour Linux . Ils devraient avoir une meilleure aide, et si c'est un problème avec le logiciel lui-même, les développeurs pourront le réparer. De plus, si vous utilisez un système d'exploitation 64 bits, il y a beaucoup de gens qui ont probablement connu les problèmes que vous avez et, par conséquent, savent exactement quoi faire.

Pimenter
la source
0

J'ai eu exactement le même problème sur Linux Mint Debian Edition 2 64 bits.

Je l'ai résolu en réinstallant les pilotes NVIDIA avec les bibliothèques GL 32 bits (après avoir installé les bibliothèques demandées).

Je suppose simplement que l'installation de ces autres bibliothèques graphiques 32 bits a rompu certaines liaisons, et la réinstallation des pilotes NVIDIA avec ces véritables bibliothèques 32 bits résout le problème de liaison.

SHOTbyGUN
la source
0

J'ai eu ce problème avec Skype. Je l'ai corrigé en réinstallant le pilote officiel Nvidia et en installant la bibliothèque de compatibilité 32 bits lors de l'installation.

Saeed Zarinfam
la source