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

После установки драйвера 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. Как это сделать? У вас есть другие предложения?

10
задан 13 April 2017 в 15:23

8 ответов

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

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

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

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

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

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

export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH

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

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

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

0
ответ дан 13 April 2017 в 15:23

От: https://github.com/ValveSoftware/steam-for-linux/issues/321

Я получил ту же проблему и решил ее путем выполнения этого:

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

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

4
ответ дан 13 April 2017 в 15:23

Исправлено в 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 анализируется.

0
ответ дан 13 April 2017 в 15:23

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

0
ответ дан 13 April 2017 в 15:23

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

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

Похоже, что программа обновления nvidia (при запросе разрешения на установку 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

0
ответ дан 13 April 2017 в 15:23

Исправлено это для 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.

0
ответ дан 13 April 2017 в 15:23

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

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

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

0
ответ дан 13 April 2017 в 15:23

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

0
ответ дан 13 April 2017 в 15:23

Другие вопросы по тегам:

Похожие вопросы: