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

103

En fait, j'ai installé le nouvel Ubuntu 15.04 64 bits, et lorsque j'essaie d'installer Steam dessus, il y a un problème. En fait, j'ai téléchargé le paquet deb depuis le site web steam, je l'ai installé et quand je le lance rien ne se passe. J'ai essayé de le démarrer depuis le terminal et 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
sabre hammami
la source
Utilisez-vous par hasard une architecture amd?
J'ai cette erreur sur un système AMD avec GPU radeon mais je suis toujours sur 14.10 - J'ai mis à jour le noyau avec aptitude, donc je suppose que l'erreur vient de là. De mon journal de mise à jour que j'ai eu linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic)alors que je utilisais auparavant Linux 3.16.0-37-generic.
pbhj
Correction du déplacement de libstdc ++. So.6 semble fonctionner.
pbhj
Vous pouvez également essayer la solution indiquée dans askubuntu.com/questions/635851/… qui, à mon avis, est plus élégante.
Tahtisilma

Réponses:

115

C'était à l'origine un problème avec Steam sur Ubuntu 15.04 / 15.10. Steam regroupe les anciennes bibliothèques et entre en conflit avec les pilotes mesa, c’est aussi pourquoi les pilotes fermés ne voient pas ce problème. Mise à jour: Il se peut également que vous manquiez certaines choses. Voir la réponse de mchid.

Il y a un bogue ouvert dans le github de Steam .

La solution de contournement actuelle consiste à supprimer l'ancienne version de lib, au moins jusqu'à ce que valve résolve le problème dans son script de démarrage ou quelque chose du genre.

Donc, entrez ces dossiers et faites ceci (ignorez le x86_64si vous n’avez qu’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, essayez ceci:

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

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

Utilisez cela pour trouver votre emplacement 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, notez que si un jeu nécessite cette ancienne lib de Steam, il risque de planter (c'est pourquoi Valve devrait résoudre ce problème)

Edit 2015-08-22:

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

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

De plus, rappelez-vous que sur chaque mise à jour du programme d'exécution Steam, vous devrez probablement l'exécuter.

Edit 2016-02-16:

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

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

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

Edit 2016-10-23:

Pour Ubuntu 16.10, la commande a été mise à jour pour supprimer plus de fichiers brisant 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 source NVIDIA fermés , voir la réponse de Vincent ci-dessous.

Edit 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! :RÉ

Edit 2017-08-03:

Malheureusement, le retour de vacances a révélé que certaines mises à jour récentes ont à nouveau rompu avec 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 vapeur, alors vous frappez ce bogue , rapporté comme non fatal, mais il écrase la vapeur sur les mêmes distributions. La solution de contournement 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

higuita
la source
1
Bonjour, Je ne suis pas sûr que je sois un cas isolé, mais je viens d’installer le paquet .deb sur ma nouvelle installation du 15.04 et cela fonctionne bien. Dommage que je ne puisse pas jouer à la moitié des jeux cependant ... sur un compte d'être Unix.
thenaglecode
3
Ceci est encore cassé en Décembre? Sensationnel. VALVE SUCE.
Warren P
1
Toutes ces astuces ne fonctionnent pas en
16h10
1
J'ai désinstallé la version de Steam et installé la version du référentiel Ubuntu et fonctionne maintenant.
QkiZ
3
Juste un mot, le 16.10, votre commande ne me convenait pas. Cependant, celle trouvée ici: askubuntu.com/a/775667 a fonctionné.
RJP
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}
Itsnikolay
la source
3
Hmm, on aurait dit que cela fonctionnerait. Un message d'erreur a été supprimé, mais il est toujours indiqué qu'il ne peut pas charger swrast - -
rm-vanda
1
Vous devez l'appliquer à nouveau après chaque mise à jour Steam.
Bebbo
encore une fois, cela ne résout pas le message d'erreur OP
mchid
J'avais le même problème que OP sur Xenial 16.04 avec le même message d'erreur, et cela a fonctionné pour moi. Je devais exécuter ces commandes une fois avant de lancer Steam pour la première fois, puis une deuxième fois après la mise à jour initiale de Steam.
Maximillian Laumeister
18

Ce qui suit est tiré de Erreur lors de l’installation de Steam sur Ubuntu 15.04 et constitue de loin la réponse la plus facile à cette question (comme indiqué plus haut par tahtisilma ). J'ajouterais que si vous voulez éviter d'avoir à utiliser le terminal de commande à chaque fois, vous pouvez éditer le fichier du bureau sur votre bureau, en cliquant avec le bouton droit de la souris sur et en sélectionnant les propriétés, puis en remplaçant la commande dans le fichier 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 simplement 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

Le résultat devrait être:

rendu direct: Oui Lancer 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. Permet de vérifier quelle version de 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

Donc, Steam a chargé LibC6 avec la version 18 d'ABI où le pilote s'attend à la version 20. La solution consiste à indiquer au système d'exploitation de précharger la version appropriée de LibC6 à l'aide de 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 un script avec le contenu suivant pour l'exécuter au lieu 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 de LD_PRELOAD.

Plus de détails peuvent être trouvés ici . Notez que je l’ai testé sur Debian et maintenant, il a été testé sur Ubuntu vivid 15.04 et fonctionne très bien.

Miller le gorille
la source
Bien que l'édition de fichier de bureau fonctionne, je ne peux pas utiliser le fichier de bureau d'entrée du menu principal (xubuntu) dans .local / share / applications / steam.desktop, sauf si je crée l'entrée de menu à l'aide d'alacarte, puis supprime le fichier de bureau steam .desktop dans .local / share / applications / steam.desktop, puis créez un lien vers le fichier de bureau à partir de .local / share / applications, comme ceci: ln -s ~ / Desktop / steam.desktop ~ / .local / share / applications / steam .desktop
meunier le gorille
J'avais initialement déplacé les fichiers, comme suggéré par certaines des réponses ci-dessus. Mais c’est uniquement avec les exportations que vous avez indiquées que j’ai travaillé à fond sur mon ubuntu 15.04. Merci beaucoup! : D
Rubens
Où est la $LIBvariable diable est définie? Beaucoup de gens en parlent, et ce n'est nulle part défini
Sergiy Kolodyazhnyy
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
Vincent
la source
Une autre solution me avait travaillé auparavant , mais je devais réinstaller mes pilotes Nvidia après inscription sur liste noire mon pilote nouveau et la vapeur ne lancerait donc ce qu'il fixe cette fois -ci , nous espérons que ce problème sera corrigé au moment où Ubuntu 16.04 sort
resonant7hand
Cela devrait fonctionner avec n’importe quelle version de nvidia (crédit: Alan Plum - github.com/ValveSoftware/steam-for-linux/issues/… ):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"
higuita
8

Ceci est une solution simple.

Selon le message d'erreur, il vous manque les fichiers suivants: r600_dri.soetswrast_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.

S'il vous plaît poster des erreurs supplémentaires.

mchid
la source
1
Si du personnel de Valve arrive, j'ai une question; Pourquoi le script du programme d'installation steam pour ubuntu n'effectue-t-il pas une recherche pour installer Mesa, rechercher les pièces manquantes et les installer pour moi?
Warren P
Pas du tout résolus, les bibliothèques en question en étaient déjà à leur dernière version.
mystrdat
Cela a résolu le problème pour moi. Cela devrait être la première chose que vous essayez.
matthew_360
1

Correctif pour Ubuntu 16.04, Xenial Xerus, 64 bits

Je n'ai que ce problème avec Steam depuis la mise à niveau vers 16.04, il a bien fonctionné le 14.04. J'ai essayé tous les correctifs 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 à nouveau L4D2 dans Ubuntu - excellent!

James Bradbury
la source
Si vous avez déjà dpkg, vous n'avez pas besoin d'installer gdebi:sudo dpkg -i ./steam.deb
CSkau
1
gdebi installera des dépendances, pas dpkg.
Havok
1

Ces deux lignes du commentaire de menasheh sur la question de 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.

Chris McFarland
la source
0

Je viens de rencontrer ce problème lors d’une nouvelle installation d’Ubuntu 18.04 LTS. Il s'avère que la version d'exécution de Steam 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
BrianD
la source
0

16.04 et plus tard

IMG:  Steam peut être installé en tant que paquet flatpak dans toutes les versions actuellement prises en charge d’Ubuntu. Ouvrez le terminal et tapez:

sudo add-apt-repository ppa: alexlarsson / flatpak # requis uniquement en 16.04 , pas dans les versions ultérieures
sudo apt update 
sudo apt installer flatpak
flatpak remote-add --if-not-exist flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak installer flathub com.valvesoftware.Steam

La première commande permettant d'ajouter ppa: alexlarsson / flatpak n'est pas requise dans 18.04 et les versions ultérieures, car le package flatpak se trouve dans les référentiels par défaut.

Steam peut être lancé en cliquant sur son icône dans le tableau de bord ou lancé depuis le terminal à l’aide de la commande suivante:

flatpak run com.valvesoftware.Steam   

De nombreux jeux nécessitent un achat en ligne, mais certains jeux populaires, tels que Team Fortress 2, sont gratuits. Lorsque vous effectuez une recherche dans le magasin, veillez à limiter les résultats en fonction du système d'exploitation SteamOS / Linux. Tous les jeux Linux ne sont pas compatibles avec votre système. Assurez-vous donc de bien connaître la configuration requise avant d'acheter des jeux.

Karel
la source