Problème d'installation de Steam sur Ubuntu 15.04+

102

En fait, j'ai installé le nouveau Ubuntu 15.04 64bit, et quand j'essaie d'installer Steam sur lui, il y a un problème. En fait, j'ai téléchargé le paquet deb sur le site Web de steam, je l'ai installé et quand je le lance, rien ne se passe. J'ai essayé de le démarrer à partir du terminal et de ce que j'ai

$ 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
    
posée saber hammami 26.04.2015 - 20:14
la source

8 réponses

116

C'était à l'origine un problème avec Steam sur Ubuntu 15.04 / 15.10. Steam emballe les anciennes bibliothèques et entre en collision avec les pilotes mesa, 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 les autres réponses de mchid.

Il existe un bogue ouvert dans le github de Steam.

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

Alors entrez ces dossiers et faites-le (ignorez le x86_64 si vous avez seulement 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 un problème 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, recherchez l’emplacement correct en vérifiant où votre profil recherche le profil de l’utilisateur:

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

Utilisez cela pour trouver votre emplacement 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

Cela a fonctionné pour moi ... mais veuillez noter que si certains jeux nécessitaient cette ancienne lib depuis le runtime de la vapeur, cela risquait de planter (c’est pour cette raison que la vanne devait corriger cela)

Modifier 2015-08-22:

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

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

Rappelez-vous également que lors de chaque mise à jour du runtime Steam, vous devrez probablement l'exécuter.

Modifier le 16/02/2016:

Voir aussi la réponse mchid ci-dessous, en faisant simplement:

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

pourrait être suffisant pour résoudre ce problème.

Modifier le 23/10/2016:

Pour Ubuntu 16.10 , la commande a été mise à jour afin de supprimer davantage de fichiers endommageant les pilotes Mesa. Cette nouvelle commande devrait donc 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 les pilotes NVIDIA à source fermée , voir la réponse de Vincent ci-dessous.

Modifier le 2017-01-08:

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

Modifier le 2017-08-03:

Malheureusement, en revenant de vacances, nous avons constaté que des mises à jour récentes avaient encore fait des progrès. 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 ensuite le crash de la frappe, vous appuyez sur cette bug , signalé comme non fatal, mais il plonge sous les mêmes distributions. 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

    
réponse donnée higuita 26.04.2015 - 21:22
la source
20

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}
    
réponse donnée itsnikolay 01.05.2015 - 19:41
la source
17

Ce qui suit provient de Erreur lors de l'installation de Steam sur ubuntu 15.04 et est de loin la réponse la plus simple à cette question (comme indiqué ci-dessus par tahtisilma ). J'ajouterais que si vous voulez éviter de devoir utiliser le terminal de commande à chaque fois, vous pouvez éditer le fichier sur votre bureau, en cliquant avec le bouton droit de la souris et en sélectionnant les propriétés, puis en remplaçant la commande du fichier par le suivant:

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 de la vapeur

Version longue:

Steam ne peut pas ouvrir nouveau_dri.so, la bibliothèque partagée chargée de communiquer 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 Courir en mode débogage:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Nous donne le résultat où les lignes suivantes nous donnent des indices:

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. Permet de vérifier quelle version utilise vapeur:

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

Ainsi, Steam chargé LibC6 avec ABI version 18 où le pilote attend la version 20. La solution consiste à dire à OS de précharger la version LibC6 appropriée en utilisant la variable LD_PRELOAD:

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

Le paramètre $ LIB peu intuitif est développé dans ld.so vers le 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 un 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 celle de LD_PRELOAD.

Plus de détails peuvent être trouvés sur ici . Notez que je l'ai testé sur Debian et qu'il a maintenant été testé sur Ubuntu vivid 15.04 et fonctionne correctement.

    
réponse donnée miller the gorilla 25.07.2015 - 12:36
la source
8

Cela fonctionne très 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
    
réponse donnée Vincent 02.05.2015 - 11:14
la source
7

Ceci est une solution simple.

Selon le message d'erreur, vous manquez les fichiers suivants: r600_dri.so et 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.

Merci de signaler toute erreur supplémentaire.

    
réponse donnée mchid 21.01.2016 - 08:54
la source
1

Correctif pour Ubuntu 16.04, Xenial Xerus, 64 bits

Je n'ai eu que ce problème avec Steam depuis la mise à jour vers 16.04, cela a bien fonctionné le 14.04. J'ai essayé toutes les corrections ci-dessus pour les anciennes versions d'Ubuntu.

La deuxième partie de cette solution a fonctionné pour moi .

$ 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

Maintenant, je lance L4D2 dans Ubuntu - excellent!

    
réponse donnée James Bradbury 21.05.2016 - 09:33
la source
1

Ces deux lignes de commentaire de menasheh sur le problème des github fonctionnent avec Ubuntu 15.10 :

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

Notez que si Steam se met à jour, vous devrez peut-être entrer à nouveau ces lignes.

    
réponse donnée Chris McFarland 07.03.2016 - 07:49
la source
0

Juste couru dans ce problème sur une nouvelle installation de Ubuntu 18.04 LTS. La version runtime de libgcc_s.so.1 était le coupable. Renommer le fichier a résolu le problème pour moi:

$ cd ~/.steam/root/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/
$ mv libgcc_s.so.1 libgcc_s.so.1.bak
    
réponse donnée BrianD 04.05.2018 - 23:40
la source

Lire d'autres questions sur les étiquettes