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


На самом деле я установил новый 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

102
2018-04-26 18:14


происхождения


Вы случайно используете архитектуру amd?
У меня есть эта ошибка в системе AMD с графическим процессором Radeon, но я все еще на 14.10 - я обновил ядро ​​в aptitude, хотя я предполагаю, что ошибка возникла оттуда. Из моего журнала обновлений у меня есть linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic) в то время как раньше я использовал Linux 3.16.0-37-generic, - pbhj
Исправлено перемещение libstdc ++. So.6 работает. - pbhj
Вы также можете попробовать решение, опубликованное в askubuntu.com/questions/635851/... что я считаю более элегантным. - Tahtisilma


ответы:


Первоначально это проблема с 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

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

Изменить 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.

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

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

удачи


116
2018-04-26 19:22



Привет, Не уверен, что я одинокий случай, но я только что установил пакет .deb на моей новой установке 15.04, и он отлично работает. Жаль, что я не могу сыграть половину игр, хотя ... на счету Unix. - thenaglecode
Это все еще разбито в декабре? Вау. КЛАПАН. - Warren P
Все эти трюки не работают в 16.10 - QkiZ
Я удалил версию из Steam и установил версию из Ubuntu repo и теперь работает. - QkiZ
Просто примечание, в 16.10 ваша команда не сделала этого трюка для меня, однако, найденного здесь: askubuntu.com/a/775667 сделал произведение. - rjp


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}

20
2018-05-01 17:41



Хм, похоже, это сработало - это, конечно, раздавило одно сообщение об ошибке, но оно все еще говорит, что он не может загружать контраст - - rm-vanda
Вы должны применить это снова после каждого обновления пара. - bebbo
опять же, это не устраняет сообщение об ошибке OP - mchid
У меня была та же проблема, что и OP на Xenial 16.04 с тем же сообщением об ошибке, и это сработало для меня. Мне нужно было запустить эти команды один раз перед запуском Steam в первый раз, а затем во второй раз после первоначального обновления Steam. - Maximillian Laumeister


Из Ошибка при установке 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. Решение состоит в том, чтобы сообщить OS предварительно загрузить соответствующую версию 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 и отлично работает.


17
2017-07-25 10:36



хотя работа с файлами на рабочем столе будет работать, я не могу получить файл рабочего стола главного меню (xubuntu) в .local / share / applications / steam.desktop, если я не создаю запись в меню с помощью alacarte, а затем удалю файл десктопа файла .desktop в .local / share / applications / steam.desktop, а затем ссылку на файл рабочего стола из .local / share / applications: ln -s ~ / Desktop / steam.desktop ~ / .local / share / applications / steam .desktop - miller the gorilla
Я изначально переместил файлы, как было сказано выше. Но только с экспортом вы указали, что у меня есть пара, работающая на моем ubuntu 15.04. Большое спасибо! : D - Rubens
Где стоит $LIB задается переменная? Многие об этом упоминают, и это нигде не определено - Sergiy Kolodyazhnyy


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

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam

8
2018-05-02 09:14



Еще одно исправление работало для меня раньше, но мне пришлось переустановить драйверы Nvidia после того, как я включил черный драйвер в нуль, а затем не запускал пар, поэтому на этот раз это исправлено, надеюсь, эта проблема будет исправлена ​​к моменту выхода Ubuntu 16.04 - resonant7hand
Это должно работать над любой версией nvidia (кредит: Alan Plum - github.com/ValveSoftware/steam-for-linux/issues/... ): NVIDIA_VERSION=$(nvidia-settings -q NvidiaDriverVersion | grep -oP "[0-9]{3}" | sed -n 1p); export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-$NVIDIA_VERSION:/usr/lib/nvidia-$NVIDIA_VERSION" - higuita


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

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

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

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

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

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


7
2018-01-21 07:54



Если какие-либо сотрудники Valve происходят, у меня есть вопрос; Почему пар для скрипта установщика ubuntu не проверяет установку Mesa и не находит недостающие части и не устанавливает их для меня? - Warren P
Не решенные вообще, рассматриваемые библиотеки были уже в их последней версии. - mystrdat
Это исправило это для меня. Это должно быть первое, что вы попробуете. - matthew_360


Исправление для 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 - отлично!


1
2018-05-21 07:33



Если у вас уже есть dpkg, нет необходимости устанавливать gdebi: sudo dpkg -i ./steam.deb - CSkau
gdebi установит зависимости, dpkg не будет. - Havok


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

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

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


1
2018-03-07 06:49