Ошибка при установке Steam на Ubuntu 15.04
agung@agung-K43SJ:~$ steam
Running Steam on ubuntu 15.04 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0)
libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
До этого я также пытался установить Steam из терминала, но он не запустился после загрузки обновления.
Может кто-нибудь помочь мне найти решение для установки Steam?
4 ответа
Укороченная версия:
Запустите пар в терминале, используя:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
вместо просто steam
Длинная версия:
Steam не открывается nouveau_dri.soобщая библиотека, отвечающая за связь с графическим драйвером. Чтобы проверить, включен ли драйвер OpenGL, выполните:
DISPLAY=:0 glxinfo | grep -i direct
Выход должен быть:
direct rendering: Yes
Запуск Steam в режиме отладки:
DISPLAY=:0 LIBGL_DEBUG=verbose steam
Дает нам вывод, где следующие строки дают нам подсказку:
libGL: OpenDriver: trying /usr/lib/i386-linux-gnu/dri/nouveau_dri.so
libGL: dlopen /usr/lib/i386-linux-gnu/dri/nouveau_dri.so failed (/home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /usr/lib/i386-linux-gnu/dri/nouveau_dri.so))
Похоже, пар использует разные версии libstdc++.so.6, Давайте проверим, какая версия Steam использует:
ls -l ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
lrwxrwxrwx 1 user user 19 Jul 18 2014 /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6 -> libstdc++.so.6.0.18
Таким образом, Steam загрузил LibC6 с ABI версии 18, где драйвер ожидает версию 20. Решение состоит в том, чтобы сказать ОС предварительно загрузить нужную версию LibC6, используя LD_PRELOAD переменная:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
Несколько неинтуитивный параметр $LIB раскрывается в ld.so по правильному пути в зависимости от платформы запускаемого процесса (подробности см. В man 8 ld.so).
Вы можете создать скрипт со следующим содержимым, чтобы запустить его вместо steam:
#!/bin/bash
# Export so all child processes are affected as well
export LD_PRELOAD='/usr/$LIB/libstdc++.so.6'
export DISPLAY=:0
#export LIBGL_DEBUG=verbose
steam
Лучший сценарий может проверить, является ли глобальная версия LibC6 более новой, чем STEAM_RUNTIME и только потом LD_PRELOAD"S.
Более подробную информацию можно найти здесь. Обратите внимание, что я тестировал его на Debian, и теперь он был протестирован на Ubuntu Vivid 15.04 и работает нормально.
Другое решение, которое помогло мне запустить клиент Steam, было найдено здесь -
https://wiki.archlinux.org/index.php/Steam/Troubleshooting
Я выполнил эту команду -
find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete
и теперь Steam запускается без каких-либо дополнительных предварительных загрузок. Надеюсь, что это поможет всем, кто имеет ту же проблему на Ubuntu 16.04
Может быть gcc LIBS в Steam Runtime несовместимы с вашим mesa водители. Сделайте резервную копию вашей домашней папки, затем попробуйте удалить эти файлы библиотеки:
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
Видимо, эта ошибка возникает при попытке установить Steam в 64-битной Ubuntu 15.04.
Я сделал новую установку Ubuntu 15.04 на моей машине. Я также установил проприетарные графические драйверы NVIDIA.
Я получал эту ошибку, но, посмотрев внимательно, я заметил, что steam - это 32-битное приложение, поэтому я установил некоторые 32-битные библиотеки и переустановил драйвер NVIDIA, чтобы Steam смог запустить.
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo ./NVIDIA-Linux-x86_64-352.63.run
Где последняя команда должна быть установщиком вашего драйвера.
Когда установщик драйвера попросит установить 32-битные библиотеки, нажмите "Да".