Steam не запускается (Kubuntu 17.04 64 бит) [dубликат]

[F1]
102
задан 19 March 2016 в 08:48

17 ответов

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

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

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

1
ответ дан 18 July 2018 в 08:09

Просто столкнулся с этой проблемой при новой установке 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
0
ответ дан 18 July 2018 в 08:09

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

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

17
ответ дан 18 July 2018 в 08:09

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

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

[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 вам, вероятно, понадобится выполнить это.

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

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

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

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

mchid

Для 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

Для ubuntu 16.10 см. ответ Винсента ниже.

Редактировать 2017-01-08:

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

Редактировать 2017-01-08:

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

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

, а затем паровой краш, тогда вы нажимаете сообщение об ошибке в ошибке github 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

удача

116
ответ дан 18 July 2018 в 08:09

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
ответ дан 18 July 2018 в 08:09

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

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

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

$ 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
ответ дан 18 July 2018 в 08:09

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

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

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

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

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

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

7
ответ дан 18 July 2018 в 08:09

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

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
8
ответ дан 18 July 2018 в 08:09

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

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

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

1
ответ дан 24 July 2018 в 19:01

Просто столкнулся с этой проблемой при новой установке 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
0
ответ дан 24 July 2018 в 19:01

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

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

17
ответ дан 24 July 2018 в 19:01
  • 1
    хотя работа с файлами на рабочем столе будет работать, я не могу получить файл рабочего стола главного меню (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 25 July 2015 в 19:07
  • 2
    Я изначально переместил файлы, как было сказано выше. Но только с экспортом вы указали, что у меня есть пара, работающая на моем ubuntu 15.04. Большое спасибо! : D – Rubens 30 August 2015 в 06:50
  • 3
    Где задана переменная heck $LIB? Многие об этом упоминают, и это нигде не определено – Sergiy Kolodyazhnyy 16 January 2017 в 03:02

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

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

[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 вам, вероятно, понадобится выполнить это.

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

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

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

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

mchid

Для 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

Для ubuntu 16.10 см. ответ Винсента ниже.

Редактировать 2017-01-08:

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

Редактировать 2017-01-08:

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

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

, а затем паровой краш, тогда вы нажимаете сообщение об ошибке в ошибке github 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

удача

116
ответ дан 24 July 2018 в 19:01
  • 1
    Привет, Не уверен, что я одинокий случай, но я только что установил пакет .deb на моей новой установке 15.04, и он отлично работает. Жаль, что я не могу сыграть половину игр, хотя ... на счету Unix. – thenaglecode 19 June 2015 в 07:25
  • 2
    Это все еще разбито в декабре? Вау. КЛАПАН. – Warren P 23 December 2015 в 06:39
  • 3
    Я удалил версию из Steam и установил версию из Ubuntu repo и теперь работает. – QkiZ 23 October 2016 в 20:55
  • 4
    Только примечание, в 16.10 ваша команда не сделала трюк для меня, однако, найденный здесь: askubuntu.com/a/775667 действительно работал. – rjp 5 November 2016 в 02:35

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
ответ дан 24 July 2018 в 19:01
  • 1
    Хм, похоже, это сработало - это, конечно, раздавило одно сообщение об ошибке, но оно все еще говорит, что он не может загружать контраст - – rm-vanda 2 May 2015 в 06:21
  • 2
    Вы должны применить это снова после каждого обновления пара. – bebbo 11 January 2016 в 00:14
  • 3
    У меня была та же проблема, что и OP на Xenial 16.04 с тем же сообщением об ошибке, и это сработало для меня. Мне нужно было запустить эти команды один раз перед запуском Steam в первый раз, а затем во второй раз после первоначального обновления Steam. – Maximillian Laumeister 21 August 2016 в 23:34

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

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

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

$ 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
ответ дан 24 July 2018 в 19:01
  • 1
    Если у вас уже есть dpkg, нет необходимости устанавливать gdebi: sudo dpkg -i ./steam.deb – CSkau 2 October 2016 в 12:30
  • 2
    gdebi установит зависимости, dpkg не будет. – Havok 22 November 2016 в 15:01

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

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

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

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

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

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

7
ответ дан 24 July 2018 в 19:01
  • 1
    Если какие-либо сотрудники Valve происходят, у меня есть вопрос; Почему пар для скрипта установщика ubuntu не проверяет установку Mesa и не находит недостающие части и не устанавливает их для меня? – Warren P 21 January 2016 в 17:57
  • 2
    Не решенные вообще, рассматриваемые библиотеки были уже в их последней версии. – mystrdat 23 February 2016 в 19:55
  • 3
    Это исправило это для меня. Это должно быть первое, что вы попробуете. – matthew_360 27 February 2016 в 23:10

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

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
8
ответ дан 24 July 2018 в 19:01
  • 1
    Это должно работать над любой версией 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 27 October 2016 в 01:52

Ниже приведено Ошибка при установке 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
ответ дан 9 August 2018 в 01:43

Другие вопросы по тегам:

Похожие вопросы: