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


11

Після установки драйвера 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. Як це можна зробити? Чи є у вас інші пропозиції?


Я можу підтвердити, що перевстановлення бібліотеки libgl1 допомогло. Ubuntu 14.04 x86-64, комп’ютер настільних ПК, графічний драйвер Nvidia для GEForce GTS 450.
hariprasad

А sudo aptitude install libgl1-mesa-glx:i386показує 305 пакетів будуть видалені, і близько 100 будуть невирішеними. Оскільки це виглядає так, що це заповнить мою систему, я підозрюю, що найкращий спосіб дії полягає у подвійному завантаженні Ubuntu з 64 бібліотеками та 32-бітовою бібліотекою, а ще краще, однією основною системою для більшості речей, однією 64-бітовою установкою для ігор та 32-бітовою інстанцією на власний розділ для 32-бітних ігор.
Underverse

Відповіді:


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, і пара успішно використовуватиме 32-бітні бібліотеки.

Ви також можете додати рядок

export LD_LIBRARY_PATH=/usr/lib32:$LD_LIBRARY_PATH

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

  • Це додає додаткового бонусу, що це краще виправити, оскільки все, що починається на пару (запис у меню програми, асоціації типів файлів, асоціації URI) буде працювати правильно.
  • Недоліком є ​​те, що /usr/bin/steam, ймовірно, буде перезаписано при оновленні пари.

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


7

Виправлено це в рядовій 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аналізується.


Це, мабуть, краще, ніж будь-які інші відповіді.
Тек


2

Виправлено це для Монетного двору 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файлу.


Використання "Монетного двору" в якості основи не пропонується, оскільки Mint тут офтопік, навіть якщо це похідне від Ubuntu
Thomas Ward

2

Я зіткнувся з тією ж проблемою, але зі скайпом . Всі рішення вище (створення символьних посилань, налаштування 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


1

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


0

У мене був такий самий випуск 64-розрядної версії Linux Mint Debian Edition 2.

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

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


0

У мене була проблема зі Skype. Я виправив це, встановивши офіційний драйвер Nvidia знову та встановив 32-бітну бібліотеку сумісності під час встановлення.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.