Ошибка при установке Steam на Ubuntu 15.04

Ошибка при установке 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?

решение1

Укороченная версия:

Запустите Steam в терминале с помощью:

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))

Похоже, что Steam использует другую версию 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.

Более подробную информацию можно найти наздесь. Обратите внимание, что я тестировал его на Debian, а теперь он был протестирован на Ubuntu Vivid 15.04 и работает отлично.

решение2

Еще одно решение, которое помогло мне запустить клиент Steam, было найдено здесь -

https://wiki.archlinux.org/index.php/Steam/Устранение неполадок

Я выполнил эту команду -

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

решение3

Возможно, gccбиблиотеки в среде выполнения Steam несовместимы с вашими 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

решение4

По-видимому, эта ошибка возникает при попытке установить Steam на64 битаУбунту 15.04.

Я установил на свой компьютер свежую версию Ubuntu 15.04. Я также установил фирменные графические драйверы NVIDIA.

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

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-битные библиотеки, нажмите «Да».

Связанный контент