На самом деле я установил новую Ubuntu 15.04 64bit, и когда я пытаюсь установить Пар на ней, существует проблема. На самом деле я загрузил 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
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}
Это отлично работает под Ubuntu 15.04 64bits с проприетарным драйвером NVIDIA версии 346 :
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
Исправление для 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 - отлично!
Это простое исправление.
Согласно сообщению об ошибке, отсутствуют следующие файлы: r600_dri.so
и swrast_dri.so
Выполните следующие команды, чтобы установить эти отсутствующие файлы:
sudo apt-get update
sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386
Проблема теперь необходимо устранить.
Сообщите о любых дополнительных ошибках.
Эти две строки из комментария менаше к проблеме с github работают с Ubuntu 15.10:
export LD_PRELOAD='/usr/$LIB/libstdc++.so.6'
export DISPLAY=:0
Обратите внимание, что если Steam обновится, вам может потребоваться ввести эти строки снова.
Steam можно установить как пакет flatpak во всех поддерживаемых в настоящее время версиях Ubuntu. Откройте терминал и введите:
sudo add-apt-repository ppa:alexlarsson/flatpak # required in 16.04 only, not in later releases sudo apt update sudo apt install flatpak sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak install flathub com.valvesoftware.Steam
Первая команда для добавления ppa:alexlarsson / flatpak не требуется в 18.04 и более поздних версиях, потому что пакет flatpak находится в репозиториях по умолчанию.
Steam можно запустить, щелкнув его значок в Dash, или запустить из терминала с помощью следующей команды:
flatpak run com.valvesoftware.Steam
Многие игры требуется покупка в Интернете, но в некоторые популярные игры, такие как Team Fortress 2, можно играть бесплатно. При поиске в магазине обязательно сужайте результаты по операционной системе SteamOS / Linux. Не все игры для Linux совместимы с вашей системой, поэтому обязательно проверьте требования перед покупкой игр.
Изначально это была проблема Steam в Ubuntu 15.04 / 15.10. Steam связывает старые библиотеки и сталкивается с драйверами mesa, поэтому закрытые драйверы не видят этой проблемы. Обновление: также может быть, что вам чего-то не хватает. См. Другой ответ mchid.
В github Steam есть открытая ошибка.
Текущий обходной путь - удалить старую версию библиотеки, по крайней мере, до тех пор, пока Valve не исправит проблему в своем сценарии запуска или что-то в этом роде вот так.
Итак, войдите в эти папки и сделайте следующее (игнорируйте 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
. Если у вас нет этих папок, найдите правильное местоположение, проверив, где ваш Steam ищет профиль пользователя:
$ fgrep config= /usr/games/steam
config=$HOME/.steam
Используйте это, чтобы найти местоположение вашей библиотеки:
[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, она может вылететь (поэтому Valve должен это исправить)
Редактировать 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 вам, вероятно, понадобится
Edit 2016-02-16:
Также см. ответ mchid ниже, просто сделав:
sudo apt-get install libgl1-mesa-dri libgl1-mesa-dri:i386
может быть достаточно, чтобы исправить это.
Edit 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 с закрытым исходным кодом , см. Ответ Винсента ниже.
Редактировать 08.01.2017:
Вероятно, последнее изменение, последнее обновление steam linux должно исправить большинство, если не все проблемы! Ну наконец то! : D
Edit 2017-08-03:
К сожалению, вернувшись из отпуска, обнаружил, что какое-то недавнее обновление снова сломало Steam. Итак, если вы получаете это при запуске, сразу после загрузки обновления:
process 23148: arguments to dbus_connection_ref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file dbus-connection.c line 2688.
, а затем сбой Steam, тогда вы сталкиваетесь с этой ошибкой , которая сообщается как нефатальная, но при этом вылетает Steam. дистрибутивы. обходной путь:
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
удачи
Следующее взято из Ошибка при установке Steam на ubuntu 15.04 и является самым простым ответом на этот вопрос (как указано выше tahtisilma ). Я бы добавил, что если вы хотите избежать боли от необходимости каждый раз использовать командный терминал, вы можете редактировать файл рабочего стола либо на своем рабочем столе, щелкнув правой кнопкой мыши и выбрав свойства, а затем заменив команду в файле рабочего стола на следующее:
sh -c "LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam"
Запустите Steam в терминале, используя:
LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam
вместо обычного Steam
Steam не может открыть nouveau_dri.so, разделяемую библиотеку, отвечающую за взаимодействие с графический драйвер. Чтобы проверить, поддерживает ли драйвер OpenGL, выполните:
DISPLAY=:0 glxinfo | grep -i direct
Вывод должен быть:
прямой рендеринг: Да Запуск 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 и отлично работает.
Только что столкнулся с этой проблемой при новой установке Ubuntu 18.04 LTS. Оказывается, виновником была версия среды выполнения Steam libgcc_s.so.1
. Переименование файла устранило проблему для меня:
$ cd ~/.steam/root/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/
$ mv libgcc_s.so.1 libgcc_s.so.1.bak