Problema al instalar Steam en Ubuntu 15.04+

102

En realidad, he instalado el nuevo Ubuntu 15.04 de 64 bits, y cuando intento instalar Steam en él, hay un problema. De hecho, he descargado el paquete Deb del sitio web de steam, lo he instalado y, cuando lo inicio, no ocurre nada. Traté de iniciarlo desde la terminal y lo que tengo

$ 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
    
pregunta saber hammami 26.04.2015 - 20:14

8 respuestas

116

Este fue originalmente un problema con Steam en Ubuntu 15.04 / 15.10. Steam reúne libs antiguos y están colisionando con controladores de mesa, esa es también la razón por la cual los controladores cerrados no ven este problema. Actualización: También es posible que te falten algunas cosas. Ver la respuesta de otro mchid.

Hay un error abierto en el github de Steam .

La solución actual es eliminar la versión anterior de lib, al menos hasta que la válvula solucione el problema en su secuencia de comandos de inicio o algo así.

Ingrese estas carpetas y haga esto (ignore x86_64 si solo tiene un sistema de 32 bits):

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

Si tiene un problema con el directorio anterior, intente esto:

Algunas personas tienen el .steam/steam/ubuntu12_32 , otras solo tienen .steam/ubuntu12_32 . Si no tiene estas carpetas, busque la ubicación correcta al verificar dónde está buscando su vapor el perfil del usuario:

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

Úselo para encontrar su ubicación de 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

Me funcionó ... pero tenga en cuenta que si algún juego requirió esa vieja lib del tiempo de ejecución de vapor, puede colapsar (es por eso que la válvula debería arreglar esto)

Editar 2015-08-22:

Como Steam ahora tiene un enlace en $HOME/.steam/root que siempre apunta al directorio de instalación de Steam correcto, este comando debería funcionar para todos y es más simple para una solución rápida:

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

Además, recuerde que en cada actualización de tiempo de ejecución de vapor, probablemente deba ejecutar esto.

Editar 2016-02-16:

También vea la respuesta de mchid a continuación, simplemente haciendo:

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

podría ser suficiente para arreglar esto.

Editar 2016-10-23:

Para ubuntu 16.10 el comando se actualizó para eliminar más archivos que están rompiendo controladores de mesa, por lo que este nuevo comando debería funcionar:

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

Para controladores de fuente cerrada de NVIDIA , consulte la respuesta de Vincent a continuación.

Editar 2017-01-08:

Probablemente la edición final, ¡la última actualización de steam linux debería solucionar la mayoría de los problemas, si no todos! ¡finalmente! : D

Editar 2017-08-03:

Lamentablemente, al regresar de vacaciones descubrió que una actualización reciente nuevamente se quebró. Entonces, si obtienes esto al comenzar, justo después de la descarga de la actualización:

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

y luego se cuelga el vapor, entonces está presionando esto bug , informado como no fatal, pero se estrelló en las mismas distribuciones. solución alternativa es esta:

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

buena suerte

    
respondido por el higuita 26.04.2015 - 21:22
20

Fastfix (probado en 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}
    
respondido por el itsnikolay 01.05.2015 - 19:41
17

Lo siguiente es de Error al instalar Steam en ubuntu 15.04 y es, de lejos, la respuesta más sencilla a esta pregunta (como se indicó anteriormente en tahtisilma ). Yo agregaría que si quiere evitar el dolor de tener que usar el terminal de comando cada vez, entonces puede editar el archivo de escritorio en su escritorio, haciendo clic derecho y seleccionando propiedades y luego reemplazando el comando en el archivo de escritorio con el siguiente:

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

Versión corta:

Comience a trabajar en la terminal usando:

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

en lugar de solo vapor

Versión larga:

Steam no puede abrir nouveau_dri.so, la biblioteca compartida responsable de la comunicación con el controlador de gráficos. Para comprobar si el controlador está habilitado para OpenGL, ejecute:

DISPLAY=:0 glxinfo | grep -i direct

El resultado debería ser:

renderización directa: sí Ejecución de steam en modo de depuración:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Nos da el resultado donde las siguientes líneas nos dan una pista:

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

Parece que steam usa una versión diferente de libstdc ++. so.6. Veamos qué versión usa 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

Así que Steam cargó LibC6 con ABI versión 18 donde el controlador espera la versión 20. La solución es decirle al sistema operativo que precargue la versión apropiada de LibC6 usando la variable LD_PRELOAD:

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

El parámetro $ LIB algo no intuitivo se expande en ld.so a la ruta correcta en función de la plataforma del proceso que se inicia (man 8 ld.so para obtener más detalles).

Puede crear un script con el siguiente contenido para ejecutarlo en lugar de 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

Un mejor script podría verificar si la versión global de LibC6 es más nueva que la de STEAM_RUNTIME y solo entonces LD_PRELOAD.

Más detalles se pueden encontrar en aquí . Tenga en cuenta que lo probé en Debian y ahora ha sido probado en Ubuntu vivid 15.04 y funciona bien.

    
respondido por el miller the gorilla 25.07.2015 - 12:36
8

Esto funciona bien para mí en Ubuntu 15.04 64bits con controlador propietario NVIDIA versión 346:

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
    
respondido por el Vincent 02.05.2015 - 11:14
7

Esta es una solución simple.

De acuerdo con el mensaje de error, faltan los siguientes archivos: r600_dri.so y swrast_dri.so

Ejecute los siguientes comandos para instalar estos archivos faltantes:

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

El problema ahora debería resolverse.

Publique cualquier error adicional.

    
respondido por el mchid 21.01.2016 - 08:54
1

Solución para Ubuntu 16.04, Xenial Xerus, 64 bits

Solo he tenido este problema con Steam desde que actualicé a 16.04, funcionó bien en 14.04. Intenté todas las correcciones anteriores para versiones anteriores de Ubuntu.

La segunda parte de esta solución funcionó para mí .

$ 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

Ahora estoy ejecutando L4D2 en Ubuntu de nuevo, ¡excelente!

    
respondido por el James Bradbury 21.05.2016 - 09:33
1

Estas dos líneas de el comentario de menasheh sobre el problema de Github funcionan con Ubuntu 15.10 :

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

Tenga en cuenta que si Steam se actualiza solo, puede que necesite ingresar estas líneas nuevamente.

    
respondido por el Chris McFarland 07.03.2016 - 07:49
0

Acabo de toparme con este problema en una nueva instalación de Ubuntu 18.04 LTS. Resulta que la versión en tiempo de ejecución de Steam de libgcc_s.so.1 fue la culpable. Cambiar el nombre del archivo me solucionó el problema:

$ cd ~/.steam/root/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/
$ mv libgcc_s.so.1 libgcc_s.so.1.bak
    
respondido por el BrianD 04.05.2018 - 23:40

Lea otras preguntas en las etiquetas