Steam: ошибка при загрузке разделяемых библиотек: libGL.so.1: неправильный класс ELF: ELFCLASS64

10

После установки драйвера Nvidia, когда я пытаюсь запустить Steam, я получаю эту ошибку:

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

Я нашел этот и один из ответов, которые предлагают установить:

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

Я уже установил libgl1-mesa-glx:i386 . Чем я нашел это , Это предполагает создание символической ссылки на 32-битный libGL. Как это можно сделать? У вас есть другие предложения?

    
задан Olcay Ertaş 12.11.2012 в 20:37
источник

8 ответов

11

Эта проблема в 64-битных системах обусловлена ​​тем, что /usr/lib находится ранее в LD_LIBRARY_PATH , чем /usr/lib32 . Steam пробует 64-битные библиотеки и жалуется, не глядя дальше.

Однако он может быть исправлен в ~/Steam/steam.sh , но этот файл, кажется, восстанавливается в исходную версию каждый раз, когда выполняется пар.

Я исправил его, создав скрипт, который делает это:

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

Это добавляет /usr/lib32 к пути библиотеки, затем начинает пар (с исходными аргументами скрипта). Теперь /usr/lib32 находится в пути до /usr/lib , а steam успешно использует 32-разрядные библиотеки.

Вы также можете добавить строку

export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH

до /usr/bin/steam , он будет иметь тот же эффект, если вы добавите его до самой последней строки. Вам нужно будет sudo для редактирования /usr/lib/steam .

  • У этого добавочного бонуса, что это лучшее исправление, поскольку все, что начинается с пара (запись меню приложения, ассоциации типов файлов, ассоциации URI), будет работать правильно.
  • Недостатком является то, что /usr/bin/steam , вероятно, будет перезаписано при обновлении пара.

Я использую последний метод, сохраняя сценарий в качестве резервной копии. Таким образом, если /usr/bin/steam будет перезаписано, я могу просто скопировать вставку строки из скрипта, чтобы исправить ее.

    
ответ дан Terion 15.11.2012 в 20:09
источник
7

Исправлено это в raring ringtail (xubuntu 13.04) с драйверами nVidia 319.17, добавив /usr/lib32 к новому файлу:

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

, затем выполните:

$ sudo ldconfig 

Так как файл /etc/ld.so.conf содержит include /etc/ld.so.conf.d/*.conf , обрабатывается любой файл в этом каталоге с расширением .conf .

    
ответ дан scruff 03.05.2013 в 03:33
4

От: Ссылка

У меня такая же проблема, и я решил это сделать:

$ cd ~/.steam/bin
$ ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 .

Это работало и на меня.

    
ответ дан hansonap 23.04.2013 в 23:52
2

Исправлено это для Mint 14 с новейшими 64-разрядными драйверами Nvidia 310.32 с 32-битной поддержкой драйверов, установленной в

/emul/ia32-linux/usr/lib 

, добавив

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

После первого "export" в начале файла /usr/bin/steam .

    
ответ дан terrigan 23.02.2013 в 23:05
2

Я столкнулся с той же проблемой, но с skype . Все вышеприведенные решения (создание символических ссылок, настройка LD_LIBRARY_PATH) не работали для меня.

Наконец-то я нашел помощь в сообщении , уже упомянутом выше, но с другое решение.

Кажется, что nvidia updater (при запросе разрешения на установку 32-разрядных библиотек совместимости OpenGL) испортил и удалил /usr/lib/i386-linux-gnu/mesa/libGL.so.1 и /usr/lib/i386-linux-gnu/mesa/libGL.so .

Переустановка Библиотека libgl1 помогла:

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

ответ дан b-studios 11.05.2014 в 09:12
1

Если вы используете бета-версию Steam для Linux, я бы разместил ее на форуме Steam для Linux . Они должны иметь лучшую помощь, и если это проблема с самим программным обеспечением, разработчики смогут это исправить. Кроме того, если вы используете 64-битную ОС, есть много людей, которые, вероятно, пережили проблемы, которые у вас есть, и, следовательно, точно знают, что делать.

    
ответ дан Spice 12.11.2012 в 21:46
0

У меня была такая же проблема на 64-битной версии Linux Mint Debian Edition.

Я разрешил его, переустановив драйверы NVIDIA с 32-разрядными библиотеками GL (после установки тех пакетов, которые запросил пароли).

Я просто предполагаю, что установка этих 32-битных графических библиотек нарушила некоторые ссылки, и переустановка драйверов NVIDIA с этими настоящими 32-разрядными библиотеками исправляет проблему с привязкой.

    
ответ дан SHOTbyGUN 03.04.2015 в 01:40
0

У меня была эта проблема со Skype. Я исправил его, установив официальный драйвер Nvidia и установив 32-битную библиотеку совместимости во время установки.

    
ответ дан Saeed Zarinfam 31.08.2016 в 04:38