Sur Ubuntu, lorsqu’on utilise le pilote graphique libre (Mesa − concerne les GPU AMD/ATI et Intel), Steam ne démarre pas, les bibliothèques qu’il intègre − la runtime − étant en conflit avec celles du système.
Il y a deux façons d’aborder ce problème : supprimer les fichiers problématiques de la runtime ou précharger les versions du système avant de lancer Steam. La première solution, si elle n’est pas automatisée, doit être refaite à chaque mise à jour de Steam ; la seconde pose problème avec certains jeux.
La méthode la plus simple de le résoudre consiste donc à automatiser la suppression de ces fichiers à chaque lancement de Steam. Pour ce faire, on privilégiera la version de Steam proposée dans les dépôts d’Ubuntu qui, à la différence du paquet téléchargeable sur le site de Valve, intègre un script de démarrage facile à modifier.
Dans cet article, nous allons voir comment installer la bonne version et corriger le script en question.
Rappel : le raccourci ~ correspond à votre dossier personnel et les fichiers dont le nom commence par un point sont cachés. De plus, certaines commandes nécessiteront d’utiliser l’éditeur de texte. Sur les environnements Unity/Gnome, celui-ci est gedit ; si vous utilisez un autre environnement de bureau, remplacez-le par votre éditeur habituel dans les commandes correspondantes : mousepad (Xfce), kate (KDE), pluma (Mate), etc.
Suppression de Steam installé par le paquet officiel
Tout d’abord, si vous avez déjà installé Steam via le paquet de Valve et installé des jeux, il va falloir mettre ceux-ci de côté (afin de ne pas avoir à les retélécharger plus tard). Puis supprimer cette version de Steam. Rendez-vous directement à la partie traitant de l’installation si vous n’êtes pas concerné(e).
Avec le gestionnaire de fichiers, on se rend dans ~/.local/share/Steam et on déplace les dossiers steamapps et userdata sur le bureau. Le premier dossier contient les jeux installés et le second des paramètres personnels relatifs à certains jeux (captures d’écran, fichiers de configuration, etc.).
On remonte ensuite dans ~/.local/share et on supprime le dossier Steam. Puis on remonte à la racine du dossier personnel et on supprime le dossier .steam.
On peut alors supprimer le paquet de Steam et le dépôt qui va avec :
sudo apt-get remove --purge steam-launcher sudo rm /etc/apt/sources.list.d/steam.list sudo apt-get update
Installation de Steam depuis les dépôts Ubuntu
On commence par installer le paquet correspondant :
sudo apt-get install steam
On édite alors son script de lancement pour rajouter les commandes qui supprimeront les fichiers problématiques de la runtime.
sudo gedit /usr/games/steam
Pour Ubuntu 16.04
On ajoute la ligne qui commence par find dans le script :
#!/bin/sh
# Copyright (C) 2013-2014 Michael Gilbert <mgilbert@debian.org>
# License: MIT
set -e
real=/usr/games/steam.real
config=$HOME/.steam
ubuntu32=$config/ubuntu12_32
exe=$ubuntu32/steam
find $config/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -delete
# launch steam / do an initial update when the exe does not already exist
test ! -d $config && rm -rf $config && mkdir -p $config || true
test ! -x $config/steam.sh && rm -rf $config/package $exe || true
test ! -d $ubuntu32 && rm -rf $ubuntu32 && mkdir -p $ubuntu32 || true
test ! -x $exe && rm -rf $exe && cp $real $exe && $ubuntu32/steam || true
test -x $config/steam.sh && $config/steam.sh "$@" 2>$config/error.log
Pour Ubuntu 16.10
On ajoute les deux lignes qui commencent par find à la fin du script :
#!/bin/sh -e
# Copyright (C) 2013-2016 Michael Gilbert <mgilbert@debian.org>
# License: MIT
config=$HOME/.steam
ubuntu32=$config/ubuntu12_32
steam=$ubuntu32/steam
runtime=$ubuntu32/steam-runtime
real=/usr/lib/games/steam/steam
# use C locale (bug #764311)
test -n "$LANG" || export LANG=C
# do an initial update when expected pieces are missing
test ! -d $config && rm -rf $config && mkdir -p $config || true
test ! -x $config/steam.sh && rm -rf $config/package $steam || true
test ! -d $ubuntu32 && rm -rf $ubuntu32 && mkdir -p $ubuntu32 || true
test ! -x $steam && rm -rf $steam && cp $real $steam && $steam || true
test ! -e $runtime.tar.xz && cat $runtime.tar.xz.part* > $runtime.tar.xz || true
test ! -d $runtime && cd $ubuntu32 && tar xf steam-runtime.tar.xz && \
md5sum steam-runtime.tar.xz > steam-runtime/checksum || true
# remove steam-runtime's libstdc++ files, which are incompatible with
# newer mesa drivers (https://bugs.freedesktop.org/78242)
find $runtime -name libstdc++.so\* -delete
# remove steam-runtime's libgpg-error files for the same reason
find $runtime -name libgpg-error.so\* -delete
find $runtime -name libgcc_s.so\* -delete
find $runtime -name libxcb.so\* -delete
# launch the Valve run script
test -x $config/steam.sh && $config/steam.sh "$@" 2>$config/error.log
Finalisation
On peut alors lancer Steam. Laissez-le faire ses mises à jour éventuelles puis fermez-le.
Si vous aviez sauvegardé les dossiers steamapps et userdata sur le bureau, rouvrez le navigateur de fichiers, rendez-vous dans le dossier ~/.steam/steam et supprimez les dossiers steamapps et userdata qui s’y trouvent. Mettez alors ceux qui se trouvent sur le bureau à la place.
Steam peut alors être utilisé normalement.
SUR LE 16.04 j’ai d’abord du lancer steam sans mettre la ligne
find $config/root/ \( -name « libgcc_s.so* » -o -name « libstdc++.so* » -o -name « libxcb.so* » -o -name « libgpg-error.so* » \) -delete
il a lancé une mise a jour.
ensuite tout ce ferme
je relance steam rien ne ce passe
j’ajoute la ligne et ça finalise la mise à jour et là steam ce lance normalement
Merci !!
J'aimeJ'aime
Bonjour, je bute pour faire fonctionner steam sur une ubuntu mate 16.04 LTS 64…je suis obligé de le lancer systématiquement depuis un terminal de cette façon : LANG=C steam…sinon, rien à faire, il plante sur une erreur de bootstrap…y’a t’il une solution pour le lancer « normalement »….la ligne de commande ne me gene pas mais là, c’est le PC de ma moitié…
J'aimeJ'aime
Là, tu me poses une colle mais j’ai l’impression qu’il y a un problème avec les locales de ton système qui est certainement plus vaste que le lancement de Steam. Essaie d’ouvrir un sujet sur le forum Ubuntu en précisant le retour de la commande locale.
J'aimeAimé par 1 personne