Problém s instalací programu Steam na Ubuntu 15.04+

102

Vlastně jsem nainstaloval nový Ubuntu 15.04 64bit a když se snažím nainstalovat Steam na něj, je problém. Ve skutečnosti jsem si stáhli deb balík z webových stránek, nainstaloval jsem ho a když jsem ho začal, nic se nestane. Snažil jsem se začít z terminálu a co mám

$ 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
    
dané saber hammami 26.04.2015 20:14

8 odpovědí

115

Toto byl původně problém s Steam na Ubuntu 15.04 / 15.10. Steam svazuje staré knihovny libs a dochází ke střetu s ovladači systému mesa, proto také uzavřené ovladače tento problém nevidí. Aktualizace: Může se stát, že některé věci chybí. Podívejte se na další odpověď mchid.

Existuje otevřená chyba ve službě Steam .

Stávajícím řešením je odstranit starou verzi lib, alespoň dokud ventil nevyřeší problém ve spouštěcím skriptu nebo podobně.

Takže zadejte tyto složky a proveďte to (ignorujtex86_64 pokud máte pouze 32bitový systém):

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

Pokud máte potíže s výše uvedeným adresářem, měli byste to zkusit:

Někteří lidé mají.steam/steam/ubuntu12_32, jiní mají pouze.steam/ubuntu12_32. Pokud nemáte tyto složky, najděte správné místo a zkontrolujte, zda vaše pára hledá uživatelský profil:

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

Použijte k nalezení lib 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

Pracovalo to pro mě ... ale mějte prosím na vědomí, že pokud nějaká hra vyžaduje starou lib z parní runtime, může se to zhroutit (to je důvod, proč ventil by měl tuto situaci opravit)

Upravit 2015-08-22:

Protože Steam má nyní odkaz v$HOME/.steam/root, který vždy odkazuje na správný adresář instalace Steam, měl by tento příkaz fungovat pro všechny a jednodušší pro rychlou opravu:

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

Také si prosím pamatujte, že při každé aktualizaci parního runtime budete pravděpodobně muset spustit toto.

Upravit 2016-02-16:

Dále zobrazte odpověď mchid níže, jednoduše:

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

to může stačit k tomu, aby to vyřešilo.

Upravit 2016-10-23:

Pro ubuntu 16.10 byl příkaz aktualizován, aby se odstranily další soubory, které porušují ovladače mesa, takže tento nový příkaz by měl fungovat:

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

Ovladače NVIDIA s uzavřeným zdrojem naleznete v níže uvedené odpovědi společnosti Vincent.

Upravit 2017-01-08:

Pravděpodobně konečná úprava, nejnovější aktualizace parních linuxů by měla opravit většinu, ne-li všechny problémy! Konečně! : D

Upravit 2017-08-03:

Bohužel, návrat z dovolené zjistil, že nějaká nedávná aktualizace znovu vypustila páru. Takže pokud se dostanete při spuštění, hned po stažení aktualizace:

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

a pak páru, pak zasáhnete bug , ohlásil se jako non-fatální, ale dělá pád páry na stejné distros. toto řešení je toto:

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

hodně štěstí

    
odpověděl higuita 26.04.2015 21:22
20

Fastfix (testováno na 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}
    
odpověděl itsnikolay 01.05.2015 19:41
17

Níže je z Chyba při instalaci programu Steam on ubuntu 15.04 a je zdaleka nejsnadnější odpovědí na tuto otázku (jak je uvedeno výše tahtisilma ). Rád bych dodal, že pokud se chcete vyhnout bolest, že budete muset používat příkazový terminál pokaždé, můžete upravit soubor plochy buď na ploše, kliknutím pravým tlačítkem myši a výběrem vlastností a následným nahrazením commmandu v souboru s počítačem následující:

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

Krátká verze:

Spusťte páru v terminálu pomocí:

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

namísto pouze páry

Dlouhá verze:

Steam nemůže otevřít nouveau_dri.so, sdílenou knihovnu odpovědnou za komunikaci s grafickým ovladačem. Chcete-li zkontrolovat, zda je ovladač podporován OpenGL, spusťte:

DISPLAY=:0 glxinfo | grep -i direct

Výstup by měl být:

Přímé vykreslování: Ano Spouštění páry v režimu ladění:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Dává nám výstup, na který nás naznačují následující řádky:

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

Zdá se, že pára používá jinou verzi libstdc ++. Zkontrolujte, kterou verzi používá pára:

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

Takže Steam načten LibC6 s ABI verze 18, kde řidič očekává verzi 20. Řešením je říct, aby operační systém předem načítal správnou verzi LibC6 pomocí proměnné LD_PRELOAD:

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

Parametr $ LIB se poněkud neintutivním způsobem rozšiřuje v ld.so na správnou cestu založenou na platformě procesu, který je spuštěn (detaily jsou uvedeny v souboru 8 ld.so).

Můžete vytvořit skript s následujícím obsahem, abyste jej spustili místo páry:

#!/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

Lepší skript by mohl zkontrolovat, zda je globální verze LibC6 novější než verze STEAM_RUNTIME a pouze pak LD_PRELOAD.

Další podrobnosti naleznete na adrese zde . Všimněte si, že jsem testoval na Debianu a nyní byl testován na Ubuntu vivid 15.04 a funguje dobře.

    
odpověděl miller the gorilla 25.07.2015 12:36
8

To funguje dobře pro mě pod Ubuntu 15.04 64bits s vlastním ovladačem NVIDIA verze 346:

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
    
odpověděl Vincent 02.05.2015 11:14
7

Jedná se o jednoduchou opravu.

Podle chybové zprávy chybí následující soubory:r600_dri.so aswrast_dri.so

Pro instalaci těchto chybějících souborů spusťte následující příkazy:

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

Problém by měl být nyní vyřešen.

Zadejte prosím další chyby.

    
odpověděl mchid 21.01.2016 08:54
1

Oprava pro Ubuntu 16.04, Xenial Xerus, 64bitová

Měl jsem pouze tento problém s Parou od upgradu na 16.04, to fungovalo dobře 14.04. Zkoušel jsem všechny výše uvedené opravy pro starší verze Ubuntu.

Druhá část toto řešení fungovala pro mě .

$ 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

Nyní znovu používám L4D2 v Ubuntu - výborný!

    
odpověděl James Bradbury 21.05.2016 09:33
1

Tyto dva řádky z komentáře menashehu k problému github fungují s Ubuntu 15.10 :

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

Všimněte si, že pokud se Steam sám aktualizuje, možná budete muset znovu zadat tyto řádky.

    
odpověděl Chris McFarland 07.03.2016 07:49
0

Prostě se dostal do tohoto problému na nové instalaci Ubuntu 18.04 LTS. Ukázalo se, že běžecká verze Steam verzelibgcc_s.so.1 byla vinným. Přejmenování souboru mi problém opravilo:

$ cd ~/.steam/root/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/
$ mv libgcc_s.so.1 libgcc_s.so.1.bak
    
odpověděl BrianD 04.05.2018 23:40