Проблема с установкой Steam на Ubuntu 15.04+

99

На самом деле я установил новый Ubuntu 15.04 64bit, и когда я пытаюсь установить Steam на него, возникает проблема. На самом деле я загрузил пакет deb с парового веб-сайта, установил его, и когда я начинаю, ничего не происходит. Я попытался запустить его с терминала и что у меня есть

$ steam
Running Steam on ubuntu 15.04 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0_client)
libGL error: unable to load driver: r600_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: r600
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast
    
задан saber hammami 26.04.2015 в 18:14
источник

7 ответов

115

Первоначально это была проблема с Steam на Ubuntu 15.04 / 15.10. Пары объединяют старые библиотеки и сталкиваются с драйверами mesa, поэтому закрытые драйверы не видят этой проблемы. Обновление. Возможно также, что вам не хватает некоторых вещей. См. Другой ответ mchid.

Существует ошибка ошибки в github Steam .

Текущее обходное решение заключается в удалении старой версии lib, по крайней мере до тех пор, пока клапан не зафиксирует проблему в своем сценарии запуска или что-то в этом роде.

Итак, введите эти папки и сделайте это (игнорируйте x86_64 , если у вас есть только 32-битная система):

cd $HOME/.steam/steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak
cd $HOME/.steam/steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu
mv libstdc++.so.6 libstdc++.so.6.bak

Если у вас проблемы с каталогом выше, вы должны попробовать следующее:

У некоторых людей есть .steam/steam/ubuntu12_32 , у других - только .steam/ubuntu12_32 . Если у вас нет этих папок, найдите правильное местоположение, проверив, где ваш пар ищет профиль пользователя:

$ fgrep config=  /usr/games/steam
config=$HOME/.steam

Используйте это, чтобы найти ваше местоположение в lib:

[config value] + /ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu
   |
   \-> $HOME/.steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu

Это сработало для меня ... но, пожалуйста, обратите внимание, что если в какой-то игре требуется, чтобы старая библиотека была запущена во время работы в Steam, она может упасть (вот почему клапан должен это исправить)

Редактировать 2015-08-22:

Поскольку у Steam теперь есть ссылка в $HOME/.steam/root , которая всегда указывает на правильный каталог установки Steam, эта команда должна работать для всех, и это проще для быстрого исправления:

find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ -name "libstdc++.so.6" -exec mv "{}" "{}.bak" \; -print

Кроме того, помните, что при каждом обновлении во время работы в Steam вам, вероятно, потребуется запустить это.

Изменить 2016-02-16:

Также см. ниже ответ mchid , просто выполните:

sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386

может быть достаточно, чтобы исправить это.

Изменить 2016-10-23:

Для ubuntu 16.10 команда была обновлена, чтобы удалить больше файлов, которые разбивают драйверы mesa, поэтому эта новая команда должна работать:

find $HOME/.steam/root/ubuntu12_32/steam-runtime/*/usr/lib/ \( -name "libstdc++.so.6" -o -name "libgpg-error.so.0"  -o -name "libxcb.so.1" -o -name "libgcc_s.so.1" \) -exec mv "{}" "{}.bak" \; -print

Для драйверов с закрытым исходным кодом NVIDIA , см. ответ Винсента ниже.

Изменить 2017-01-08:

Вероятно, окончательное редактирование, последнее обновление парольного linux должно исправить большинство, если не все проблемы! в конце концов! : D

Изменить 2017-08-03:

К сожалению, возвращение из отпуска показало, что некоторые недавние обновления снова разошлись. Поэтому, если вы получите это при запуске, сразу после загрузки обновления:

process 23148: arguments to dbus_connection_ref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file dbus-connection.c line 2688.

, а затем паровой крах, тогда вы нажимаете это bug , сообщается как нефатальный, но он парит пар на тех же дистрибутивах. обходной путь:

ln -s ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libdbus-1.so.3 ${HOME}/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libdbus-1.so.3

удача

    
ответ дан higuita 26.04.2015 в 19:22
19

Fastfix (проверено на Ubuntu 15.04)

mv ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1{,.disable}
mv ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6{,.disable}
    
ответ дан itsnikolay 01.05.2015 в 17:41
17

Ниже приведено Ошибка при установке Steam на ubuntu 15.04 и на сегодняшний день является самым легким ответом на этот вопрос (как отмечалось выше tahtisilma ). Я бы добавил, что если вы хотите избежать боли при использовании командного терминала каждый раз, то вы можете редактировать рабочий стол на рабочем столе, щелкнув правой кнопкой мыши и выбрав свойства, а затем заменив commmand в файле рабочего стола на следующее:

sh -c "LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam"  

Краткая версия:

Начните пар в терминале, используя:

LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam

вместо простого пара

Длинная версия:

Steam не может открыть nouveau_dri.so, общую библиотеку, отвечающую за связь с графическим драйвером. Чтобы проверить, включен ли драйвер OpenGL, выполните:

DISPLAY=:0 glxinfo | grep -i direct

Выход должен быть:

прямой рендеринг: Да Запуск пара в режиме отладки:

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. Позволяет проверить, какой вариант использует пар:

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 для деталей).

Вы можете создать скрипт со следующим содержимым, чтобы запустить его вместо пара:

#!/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 и отлично работает.

    
ответ дан miller the gorilla 25.07.2015 в 10:36
8

Это отлично работает для меня под Ubuntu 15.04 64 бит с проприетарным драйвером NVIDIA версии 346:

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
    
ответ дан Vincent 02.05.2015 в 09:14
7

Это простое исправление.

В соответствии с сообщением об ошибке вам не хватает следующих файлов: r600_dri.so и swrast_dri.so

Для установки этих отсутствующих файлов выполните следующие команды:

sudo apt-get update
sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386

Теперь проблема должна быть решена.

Просьба указать дополнительные ошибки.

    
ответ дан mchid 21.01.2016 в 07:54
1

Исправление для Ubuntu 16.04, Xenial Xerus, 64-бит

У меня была эта проблема только с Steam с момента обновления до 16.04, она отлично работала на 14.04. Я пробовал все исправления выше для более старых версий Ubuntu.

Вторая часть этого решения работала для меня .

$ sudo dpkg --add-architecture i386
$ sudo apt-get update
$ sudo apt-get install wget gdebi libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libc6:i386
$ wget http://media.steampowered.com/client/installer/steam.deb
$ sudo gdebi steam.deb

Теперь я снова запускаю L4D2 в Ubuntu - отлично!

    
ответ дан James Bradbury 21.05.2016 в 07:33
1

Эти две строки из комментарий menasheh по проблеме github работают с Ubuntu 15.10

export LD_PRELOAD='/usr/$LIB/libstdc++.so.6'
export DISPLAY=:0

Обратите внимание, что если Steam обновляется, вам может понадобиться снова ввести эти строки.

    
ответ дан Chris McFarland 07.03.2016 в 06:49