104 votes

Problème d'installation de Steam sur Ubuntu 15.04

En fait, j'ai installé la nouvelle Ubuntu 15.04 64bit, et quand j'essaie d'installer Steam dessus, il y a un problème. En fait, j'ai téléchargé le paquet deb du site de steam, je l'ai installé et quand je le démarre, rien ne se passe. J'ai essayé de le démarrer à partir d'un terminal et j'ai obtenu les résultats suivants

$ 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

115voto

higuita Points 1981

C'était à l'origine un problème avec Steam sur Ubuntu 15.04/15.10. Steam utilise de vieilles librairies qui entrent en collision avec les pilotes tabla, c'est aussi pourquoi les pilotes fermés ne voient pas ce problème. Mise à jour : Il se peut aussi que vous manquiez certaines choses. Voir la réponse d'un autre mchid.

Il existe un bug ouvert dans le github de Steam .

La solution actuelle consiste à supprimer l'ancienne version de la librairie, au moins jusqu'à ce que Valve corrige le problème dans son script de démarrage ou quelque chose du genre.

Donc, entrez dans ces dossiers et faites ceci (ignorez le x86_64 si vous ne disposez que d'un système 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 vous avez des problèmes avec le répertoire ci-dessus, vous devriez essayer ceci :

Certaines personnes ont le .steam/steam/ubuntu12_32 d'autres n'ont que .steam/ubuntu12_32 . Si vous ne disposez pas de ces dossiers, trouvez l'emplacement correct en vérifiant où votre vapeur recherche le profil utilisateur :

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

Utilisez ça pour trouver l'emplacement de votre 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

Cela a fonctionné pour moi ... mais s'il vous plaît noter que si un jeu a besoin de cette ancienne librairie du runtime de la vapeur, il peut se planter (c'est pourquoi valve devrait corriger cela).

Edit 2015-08-22 :

Comme Steam a maintenant un lien dans le $HOME/.steam/root qui pointe toujours vers le répertoire d'installation correct de Steam, cette commande devrait fonctionner pour tout le monde et c'est plus simple pour une correction rapide :

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

De plus, n'oubliez pas qu'à chaque mise à jour du runtime de steam, vous devrez probablement exécuter ceci.

Edit 2016-02-16 :

Voir également le mchid répondre ci-dessous, simplement faire :

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

pourrait suffire à régler ce problème.

Edit 2016-10-23 :

Pour ubuntu 16.10 la commande a été mise à jour pour supprimer plus de fichiers qui cassent les pilotes tabla, donc cette nouvelle commande devrait fonctionner :

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

Pour Pilotes NVIDIA à source fermée voir la réponse de Vincent ci-dessous.

Edition 2017-01-08 :

Probablement l'édition finale, la dernière mise à jour de steam linux devrait résoudre la plupart, sinon tous les problèmes ! enfin ! :D

Edition 2017-08-03 :

Malheureusement, en rentrant de vacances, j'ai constaté qu'une mise à jour récente a encore cassé la vapeur. Donc si vous obtenez ceci au démarrage, juste après le téléchargement de la mise à jour :

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

et puis le crash de la vapeur, alors vous êtes en train de frapper ce bogue Il est signalé comme non fatal, mais il fait planter steam sur les mêmes distros. La solution est la suivante :

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

bonne chance

20voto

Syakur Rahman Points 135

Fastfix (testé sur 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}

18voto

vise Points 225

Ce qui suit est tiré de Erreur dans l'installation de Steam sur ubuntu 15.04 et est de loin la réponse la plus facile à cette question (comme l'a fait remarquer ci-dessus le tahtisilma ). J'ajouterais que si vous voulez éviter d'avoir à utiliser le terminal de commande à chaque fois, vous pouvez modifier le fichier du bureau soit sur votre bureau, en faisant un clic droit et en sélectionnant les propriétés, puis en remplaçant la commande dans le fichier du bureau par ce qui suit :

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

Version courte :

Démarrer la vapeur dans le terminal en utilisant :

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

au lieu d'une simple vapeur

Version longue :

Steam ne peut pas ouvrir nouveau_dri.so, la bibliothèque partagée responsable de la communication avec le pilote graphique. Pour vérifier si le pilote est compatible OpenGL, exécutez :

DISPLAY=:0 glxinfo | grep -i direct

La sortie devrait être :

rendu direct : Oui Exécution de steam en mode débogage :

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Nous donne la sortie où les lignes suivantes nous donnent un indice :

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

Il semble que steam utilise une version différente de libstdc++.so.6. Vérifions la version que steam utilise :

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 a donc chargé LibC6 avec la version 18 de l'ABI alors que le pilote s'attend à la version 20. La solution est de dire au système d'exploitation de précharger la bonne version de LibC6 en utilisant la variable LD_PRELOAD :

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

Le paramètre $LIB, quelque peu non intuitif, est étendu dans ld.so au bon chemin en fonction de la plate-forme du processus en cours de démarrage (man 8 ld.so pour plus de détails).

Vous pouvez créer script avec le contenu suivant pour l'exécuter à la place 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 meilleur script pourrait vérifier si la version globale de LibC6 est plus récente que celle de STEAM_RUNTIME et seulement ensuite les LD_PRELOAD.

Plus de détails sont disponibles sur aquí . Notez que je l'ai testé sur Debian et maintenant il a été testé sur Ubuntu vivid 15.04 et fonctionne bien.

8voto

Vincent Points 91

Cela fonctionne bien pour moi sous Ubuntu 15.04 64bits avec le pilote propriétaire NVIDIA version 346 :

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

8voto

mchid Points 36939

C'est une solution simple.

Selon le message d'erreur, il vous manque les fichiers suivants : r600_dri.so y swrast_dri.so

Exécutez les commandes suivantes pour installer ces fichiers manquants :

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

Le problème devrait maintenant être résolu.

Veuillez signaler toute erreur supplémentaire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X