Problem mit der Installation von Steam unter Ubuntu 15.04+


103

Eigentlich habe ich das neue Ubuntu 15.04 64bit installiert, und wenn ich versuche, Steam darauf zu installieren, gibt es ein Problem. Tatsächlich habe ich das Deb-Paket von der Steam-Website heruntergeladen, es 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

Verwenden Sie zufällig eine AMD-Architektur?

Ich habe diesen Fehler auf einem AMD-System mit Radeon-GPU, aber ich bin immer noch auf 14.10. Aus meinem Update-Protokoll, das ich erhalten habe, linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic)während ich es zuvor verwendet habe Linux 3.16.0-37-generic.
pbhj

Korrektur des Verschiebens von libstdc ++. So.6 scheint zu funktionieren.
pbhj

Sie können auch die in askubuntu.com/questions/635851/… veröffentlichte Lösung ausprobieren , die ich für eleganter halte.
Tahtisilma

Antworten:


115

Dies war ursprünglich ein Problem mit Steam unter Ubuntu 15.04 / 15.10. Steam bündelt alte Bibliotheken und kollidiert mit MESA-Treibern. Aus diesem Grund sehen geschlossene Treiber dieses Problem nicht. Update: Es kann auch sein, dass Ihnen einige Dinge fehlen. Siehe die Antwort anderer Mchids.

In Steams Github ist ein Fehler aufgetreten .

Die derzeitige Problemumgehung besteht darin, die alte lib-Version zu entfernen, zumindest bis Valve das Problem in ihrem Startskript oder ähnlichem behebt.

Geben Sie diese Ordner ein und tun Sie dies (ignorieren Sie das, x86_64wenn 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 haben das .steam/steam/ubuntu12_32, andere nur .steam/ubuntu12_32. Wenn Sie diese Ordner nicht haben, suchen Sie den richtigen Speicherort, indem Sie überprüfen, wo Ihr Steam nach dem Benutzerprofil sucht:

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

Verwenden Sie das, um Ihren lib-Standort 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 hat bei mir funktioniert ... aber bitte beachte, dass wenn ein Spiel diese alte Bibliothek aus der Steam-Laufzeit benötigt, es abstürzen kann (deshalb sollte das Ventil dies beheben)

Edit 2015-08-22:

Da Steam nun einen Link im $HOME/.steam/rootSteam-Installationsverzeichnis hat , der immer auf das richtige Steam-Installationsverzeichnis verweist, sollte dieser Befehl für alle funktionieren und für eine schnelle Lösung einfacher sein:

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

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

Edit 2016-02-16:

Siehe auch die folgende Antwort von mchid :

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

könnte ausreichen, um dies zu beheben.

Edit 2016-10-23:

Für Ubuntu 16.10 wurde der Befehl aktualisiert, um weitere Dateien zu entfernen, die Mesa-Treiber beschädigen. 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 - Source - Treiber geschlossen , siehe Vincent Antwort unten.

Bearbeiten 08.01.2017:

Wahrscheinlich die endgültige Bearbeitung, das neueste Steam-Linux-Update sollte die meisten, wenn nicht alle Probleme beheben! schließlich! : D

Bearbeiten 03.08.2017:

Als ich aus dem Urlaub zurückkam, stellte ich leider fest, dass einige der letzten Updates erneut den Dampf abbrachen. Wenn Sie dies also beim Starten erhalten, laden Sie es direkt nach dem Update herunter:

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 Dampfabsturz, dann treffen Sie diesen Fehler , der als nicht tödlich gemeldet wurde, aber Dampfabsturz auf denselben Distributionen verursacht. Problemumgehung lautet wie folgt:

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


1
Hallo, Ich bin mir nicht sicher, ob ich ein Einzelfall bin, aber ich habe gerade das .deb-Paket auf meiner neuen 15.04-Installation installiert und es funktioniert einwandfrei. Schade, dass ich nicht die Hälfte der Spiele spielen kann, weil ich Unix bin.
thenaglecode

3
Ist das im Dezember noch kaputt? Beeindruckend. VENTIL SAUGT.
Warren P

1
All diese Tricks funktionieren nicht in 16.10
QkiZ 16.10.16

1
Ich habe die Version von Steam deinstalliert und die Version von Ubuntu Repo installiert und jetzt funktioniert.
QkiZ

3
Nur eine Anmerkung, am 16.10 hat Ihr Befehl für mich nicht den Trick getan, aber der hier gefundene hat funktioniert : askubuntu.com/a/775667 .
rjp

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}

3
Hmm, das sah so aus, als würde es funktionieren - es hat sicherlich eine Fehlermeldung beseitigt, aber es sagt immer noch, dass Swrast nicht geladen werden kann - -
rm-vanda

1
Sie müssen dies nach jedem Steam-Update erneut anwenden.
Bebbo

Auch hier wird die OP-Fehlermeldung nicht
behoben

Ich hatte das gleiche Problem wie OP unter Xenial 16.04 mit der gleichen Fehlermeldung, und das hat bei mir funktioniert. Ich musste diese Befehle einmal ausführen, bevor ich Steam zum ersten Mal und ein zweites Mal nach dem ersten Update von Steam startete.
Maximillian Laumeister

18

Das Folgende ist von einem Fehler bei der Installation von Steam auf Ubuntu 15.04 und ist bei weitem die einfachste Antwort auf diese Frage (wie oben von Tahtisilma angegeben ). Ich möchte hinzufügen, dass Sie die Desktop-Datei entweder auf Ihrem Desktop bearbeiten können, indem Sie mit der rechten Maustaste klicken und Eigenschaften auswählen und dann den Befehl in der Desktop-Datei durch den Befehl ersetzen, wenn Sie nicht jedes Mal das Befehlsterminal verwenden müssen Folgendes:

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

Kurzfassung:

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 verantwortlich ist, nicht öffnen. So überprüfen Sie, ob der Treiber OpenGL-fähig ist:

DISPLAY=:0 glxinfo | grep -i direct

Die Ausgabe sollte sein:

Direktes Rendern: Ja Steam im Debug-Modus ausführen:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Gibt die Ausgabe aus, in der die folgenden Zeilen 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. Lässt überprüfen, welche Version Steam 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, wobei der Treiber Version 20 erwartet. Die Lösung besteht darin, dem Betriebssystem mitzuteilen, dass die richtige LibC6-Version mit der Variablen LD_PRELOAD vorgeladen werden soll:

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

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

Sie können ein Skript mit folgendem Inhalt erstellen, um es anstelle von Steam 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 die in LD_PRELOAD.

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


Obwohl die Bearbeitung der Desktop-Datei funktioniert, kann ich die Desktop-Datei mit dem Hauptmenüeintrag (xubuntu) in .local / share / applications / steam.desktop nur dann zum Laufen bringen, wenn ich den Menüeintrag mit alacarte erstelle und dann die Desktop-Datei steam entferne .desktop in .local / share / applications / steam.desktop und dann von .local / share / applications wie folgt auf die Desktop-Datei verlinken: ln -s ~ / Desktop / steam.desktop ~ / .local / share / applications / steam .desktop
Müller der Gorilla

Ich hatte die Dateien anfangs verschoben, wie oben in einigen Antworten vorgeschlagen. Aber erst mit den Exporten, auf die Sie hingewiesen haben, habe ich Dampf auf meinem Ubuntu 15.04. Danke vielmals! : D
Rubens

Wo wird die Heckvariable $LIBgesetzt? Viele Leute erwähnen es, und es ist nirgends definiert
Sergiy Kolodyazhnyy

8

Dies funktioniert gut für mich unter Ubuntu 15.04 64bit mit proprietärem Treiber NVIDIA Version 346:

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

Ein weiteres Update hatte , bevor sie für mich gearbeitet , aber ich musste meine Nvidia - Treiber neu installieren , nachdem mein Nouveau - Treiber eine schwarze Liste und dann würde Dampf nicht starten , so das es diesmal fixiert, hoffentlich dieses Problem durch die Zeit behoben wird Ubuntu 16.04 kommt
resonant7hand

Dies sollte auf jeder nvidia-Version funktionieren ( 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"
Bildnachweis

8

Dies ist eine einfache Lösung.

Die folgenden Dateien fehlen laut Fehlermeldung: r600_dri.soundswrast_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 sein.

Bitte posten Sie weitere Fehler.


1
Wenn Mitarbeiter von Valve mitmachen, habe ich eine Frage. Warum prüft der Steam für Ubuntu-Installationsskript nicht die Mesa-Installation und findet fehlende Teile und installiert sie für mich?
Warren P

Überhaupt nicht gelöst, die fraglichen Bibliotheken waren bereits in der neuesten Version.
Mystrdat

Das hat es für mich behoben. Dies sollte das erste sein, was Sie versuchen.
Matthew_360

1

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

Ich hatte dieses Problem nur mit Steam seit dem Upgrade auf 16.04. Am 14.04 hat es einwandfrei funktioniert. Ich habe alle oben genannten Korrekturen für ältere Versionen von Ubuntu ausprobiert.

Der zweite Teil dieser Lösung hat für mich funktioniert.

$ 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 wieder L4D2 in Ubuntu - exzellent!


Wenn Sie bereits über dpkg verfügen, müssen Sie gdebi nicht installieren:sudo dpkg -i ./steam.deb
CSkau,

1
gdebi installiert Abhängigkeiten, dpkg nicht.
Havok

1

Diese zwei Zeilen aus Menashes Kommentar zum Thema Github funktionieren mit Ubuntu 15.10:

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

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


0

Bin gerade auf dieses Problem bei einer Neuinstallation von Ubuntu 18.04 LTS gestoßen. Es stellte sich heraus, dass die Steam-Laufzeitversion libgcc_s.so.1der Schuldige war. 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

0

16.04 und später

IMG:  Steam kann als Flatpak-Paket in allen derzeit unterstützten Versionen von Ubuntu installiert werden. Öffnen Sie das Terminal und geben Sie Folgendes ein:

sudo add-apt-repository ppa: alexlarsson / flatpak # nur in 16.04 erforderlich , nicht in späteren Versionen
sudo apt update 
sudo apt installiere flatpak
flatpak remote-add - falls nicht vorhanden flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak installiere flathub com.valvesoftware.Steam

Der erste Befehl zum Hinzufügen von ppa: alexlarsson / flatpak ist in Version 18.04 und höher nicht erforderlich, da sich das flatpak-Paket in den Standardrepositorys befindet.

Steam kann durch Klicken auf das Symbol im Dash oder über das Terminal mit dem folgenden Befehl gestartet werden:

flatpak run com.valvesoftware.Steam   

Viele Spiele erfordern einen Online-Kauf, aber einige beliebte Spiele wie Team Fortress 2 können kostenlos gespielt werden. Achten Sie bei der Suche im Store darauf, die Ergebnisse durch das SteamOS / Linux-Betriebssystem einzugrenzen. Nicht alle Linux-Spiele sind mit Ihrem System kompatibel. Überprüfen Sie daher die Anforderungen, bevor Sie Spiele kaufen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.