После установки драйвера 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. Как это сделать? У вас есть другие предложения?
Эта проблема в 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
.
/usr/bin/steam
может быть перезаписано при обновлении Steam. Я использую последний метод, сохраняя сценарий в качестве резервной копии. Таким образом, если /usr/bin/steam
перезаписать, я могу просто скопировать и вставить строку из скрипта, чтобы исправить это.
От: https://github.com/ValveSoftware/steam-for-linux/issues/321
Я получил ту же проблему и решил ее путем выполнения этого:
$ cd ~/.steam/bin
$ ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 .
Это работало на меня также.
Исправлено в 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
анализируется.
Если вы используете ограниченную бета-версию Steam для Linux, я опубликую это на форумах Steam для Linux . Они должны иметь лучшую помощь, и если это проблема с самим программным обеспечением, разработчики смогут исправить это. Кроме того, если вы используете 64-битную ОС, там много людей, которые, вероятно, прошли через проблемы, которые у вас есть, и, следовательно, точно знают, что делать.
Я столкнулся с той же проблемой, но с 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
Исправлено это для 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
.
У меня была точно такая же проблема в 64-битной версии Linux Mint Debian Edition 2.
Я решил эту проблему путем переустановки драйверов NVIDIA с 32-битными библиотеками GL (после установки этих библиотек Steam запрашивал).
Я просто предполагаю, что установка этих 32-битных графических библиотек нарушает некоторые связи, а переустановка драйверов NVIDIA с этими реальными 32-битными библиотеками устраняет проблему линковки.
У меня была эта проблема со скайпом. Я исправил это, снова установив официальный драйвер Nvidia и установив 32-битную библиотеку совместимости во время установки.