Problem mit der Installation von Steam unter Ubuntu 15.04+

102

Eigentlich habe ich das neue Ubuntu 15.04 64bit installiert, und wenn ich versuche, Steam darauf zu installieren, gibt es ein Problem. In der Tat habe ich das Deb-Paket von der Steam-Website heruntergeladen, installiert und wenn ich es starte passiert nichts. Ich habe versucht, es vom Terminal zu starten und was ich habe

$ 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, 20:14
quelle

8 Antworten

116

Das war ursprünglich ein Problem mit Steam unter Ubuntu 15.04 / 15.10. Steam bündelt alte Bibliotheken und kollidiert mit Mesa-Treibern, weshalb geschlossene Treiber dieses Problem nicht sehen. Update: Es kann auch sein, dass Sie einige Dinge vermissen. Siehe die Antwort von anderen Mchids.

Es gibt einen Fehler in Steams Github .

Die aktuelle Problemumgehung besteht darin, die alte lib-Version zu entfernen, zumindest bis valve das Problem in ihrem Startskript oder so ähnlich behebt.

Geben Sie diese Ordner ein und tun Sie dies (ignorieren Sie x86_64 , wenn Sie nur ein 32-Bit-System haben):

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

Wenn Sie Probleme mit dem obigen Verzeichnis haben, sollten Sie Folgendes versuchen:

Manche Leute haben .steam/steam/ubuntu12_32 , andere haben nur .steam/ubuntu12_32 . Wenn Sie diese Ordner nicht haben, finden Sie den richtigen Speicherort, indem Sie überprüfen, wo Ihr Dampf nach dem Benutzerprofil sucht:

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

Benutze das, um deinen lib-Ort zu finden:

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

Es funktionierte für mich ... aber bitte beachten Sie, dass wenn ein Spiel diese alte lib von der Steam Runtime benötigt, es abstürzen könnte (deshalb sollte valve das beheben)

Bearbeiten 2015-08-22:

Da Steam jetzt einen Link in $HOME/.steam/root hat, der immer auf das richtige Steam-Installationsverzeichnis zeigt, sollte dieser Befehl für alle funktionieren und es ist einfacher für eine schnelle Lösung:

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

Denken Sie auch daran, dass Sie bei jedem Steam-Runtime-Update wahrscheinlich dies ausführen müssen.

Bearbeiten 2016-02-16:

Siehe auch die mchid Antwort unten, einfach:

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

könnte ausreichen, um dies zu beheben.

Bearbeiten 23.10.2016:

Für ubuntu 16.10 wurde der Befehl aktualisiert, um mehr Dateien zu entfernen, die die Mesa-Treiber zerstören. Daher sollte dieser neue Befehl funktionieren:

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

Für NVIDIA closed source drivers lesen Sie Vincents Antwort unten.

Bearbeiten 2017-01-08:

Wahrscheinlich letzte Änderung, das neueste Update von Steam Linux sollte die meisten, wenn nicht alle Probleme beheben! endlich! : D

Bearbeiten 2017-08-03:

Traurigerweise kam die Rückkehr aus dem Urlaub zu dem Schluss, dass einige aktuelle Updates wieder in die Brüche gingen. Also, wenn Sie dies beim Start bekommen, gleich nach dem Update-Download:

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

und dann Dampf-Crash, dann treffen Sie das bug , wird als nicht-fatal gemeldet, aber es stürzt auf denselben Distributionen ab. Problemumgehung ist dies:

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

viel Glück

    
higuita 26.04.2015 21:22
quelle
20

Fastfix (getestet auf 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 19:41
quelle
17

Das Folgende stammt von Fehler bei der Installation von Steam on ubuntu 15.04 und ist bei weitem die einfachste Antwort auf diese Frage (wie oben von tahtisilma erwähnt). Ich würde hinzufügen, dass, wenn Sie den Schmerz vermeiden wollen, jedes Mal das Befehlsterminal zu verwenden, dann können Sie die Desktopdatei entweder auf Ihrem Desktop bearbeiten, indem Sie mit der rechten Maustaste klicken und Eigenschaften auswählen und dann den Befehl in der Desktopdatei durch den ersetzen Folgendes:

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

Kurzversion:

Starten Sie den Dampf im Terminal mit:

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

statt nur Dampf

Lange Version:

Steam kann nouveau_dri.so, die gemeinsam genutzte Bibliothek, die für die Kommunikation mit dem Grafiktreiber zuständig ist, nicht öffnen. Um zu prüfen, ob der Treiber OpenGL aktiviert ist, führen Sie:

DISPLAY=:0 glxinfo | grep -i direct

Die Ausgabe sollte lauten:

direktes Rendern: Ja Dampf im Debug-Modus laufen lassen:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Gibt uns die Ausgabe, wo die folgenden Zeilen uns einen Hinweis geben:

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

Es scheint, dass Steam eine andere Version von libstdc ++ verwendet. Wir können überprüfen, welche Version von dampf verwendet:

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

Also hat Steam LibC6 mit ABI Version 18 geladen, wo der Treiber Version 20 erwartet. Die Lösung besteht darin, dem Betriebssystem mitzuteilen, dass es die richtige LibC6-Version mit der Variablen LD_PRELOAD laden soll:

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

Der etwas nicht-intuitive $ LIB-Parameter wird in ld.so auf den richtigen Pfad basierend auf der Plattform des gestarteten Prozesses erweitert (man 8 ld.so für Details).

Sie können ein Skript mit dem folgenden Inhalt erstellen, um es anstelle von dampf auszuführen:

#!/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

Ein besseres Skript könnte prüfen, ob die globale LibC6-Version neuer ist als die in STEAM_RUNTIME und nur dann LD_PRELOAD.

Weitere Details finden Sie auf hier . Beachten Sie, dass ich es auf Debian getestet habe und jetzt wurde es auf Ubuntu vivid 15.04 getestet und funktioniert gut.

    
miller the gorilla 25.07.2015 12:36
quelle
8

Das funktioniert für mich unter Ubuntu 15.04 64bits mit proprietären Treiber NVIDIA Version 346:

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

Dies ist eine einfache Lösung.

Laut der Fehlermeldung fehlen folgende Dateien: r600_dri.so und swrast_dri.so

Führen Sie die folgenden Befehle aus, um diese fehlenden Dateien zu installieren:

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

Das Problem sollte jetzt gelöst werden.

Bitte posten Sie weitere Fehler.

    
mchid 21.01.2016 08:54
quelle
1

Fix für Ubuntu 16.04, Xenial Xerus, 64-Bit

Ich hatte dieses Problem mit Steam erst seit dem Upgrade auf 16.04, es funktionierte am 14.04. Ich habe alle obigen Fixes für ältere Versionen von Ubuntu ausprobiert.

Der zweite Teil von diese Lösung funktionierte für mich .

$ 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

Jetzt starte ich L4D2 wieder in Ubuntu - ausgezeichnet!

    
James Bradbury 21.05.2016 09:33
quelle
1

Diese beiden Zeilen von menashehs Kommentar zu github issue funktionieren mit Ubuntu 15.10 :

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

Wenn Steam sich selbst aktualisiert, müssen Sie diese Zeilen möglicherweise erneut eingeben.

    
Chris McFarland 07.03.2016 07:49
quelle
0

Dieses Problem ist bei einer Neuinstallation von Ubuntu 18.04 LTS aufgetreten. Stellt sich heraus, die Steam-Laufzeitversion von libgcc_s.so.1 war der Schuldige. Das Umbenennen der Datei hat das Problem für mich behoben:

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

Tags und Links