Problema com a instalação do Steam no Ubuntu 15.04+

102

Na verdade eu instalei o novo Ubuntu 15.04 64bit, e quando estou tentando instalar o Steam nele, há um problema. Na verdade eu baixei o pacote deb do site steam, instalei e quando eu inicio, nada acontece. Eu tentei iniciá-lo do terminal e o que eu tenho

$ 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
    
por saber hammami 26.04.2015 / 20:14

8 respostas

115

Isso foi originalmente um problema com o Steam no Ubuntu 15.04 / 15.10. O Steam agrupa libs antigas e está colidindo com drivers de mesa, e é por isso que os drivers fechados não estão vendo esse problema. Atualização: Também pode ser que você esteja perdendo algumas coisas. Veja a resposta de outro mchid.

Existe um erro de abertura no github do Steam .

A solução atual é remover a versão antiga do lib, pelo menos até que a válvula corrija o problema no script de inicialização ou algo parecido.

Portanto, insira essas pastas e faça isso (ignore o x86_64 se você tiver apenas um sistema de 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

Se você tiver problema com o diretório acima, tente isso:

Algumas pessoas têm o .steam/steam/ubuntu12_32 , outras têm apenas .steam/ubuntu12_32 . Se você não tiver essas pastas, encontre o local correto, verificando onde o seu steam está procurando o perfil do usuário:

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

Use isso para encontrar sua localização 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

Funcionou para mim ... mas, por favor, note que se algum jogo exigisse aquela lib antiga do steam runtime, ela poderia falhar (é por isso que a válvula deveria consertar isso)

Editar 2015-08-22:

Como o Steam agora tem um link no $HOME/.steam/root que sempre aponta para o diretório correto de instalação do Steam, este comando deve funcionar para todos e é mais simples para uma correção rápida:

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

Além disso, lembre-se de que em cada atualização de tempo de execução do Steam, você provavelmente precisará executar isso.

Editar 2016-02-16:

Veja também a resposta mchid abaixo, simplesmente fazendo:

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

pode ser o suficiente para corrigir isso.

Editar 2016-10-23:

Para ubuntu 16.10 o comando foi atualizado para remover mais arquivos que estão quebrando os drivers da mesa, então este novo comando deve funcionar:

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

Para drivers de código-fonte fechado NVIDIA , veja a resposta de Vincent abaixo.

Editar 2017-01-08:

Provavelmente a edição final, a última atualização do steam linux deve corrigir a maioria, se não todos os problemas! finalmente! : D

Editar 2017-08-03:

Infelizmente, ao voltar de férias, constatou-se que alguma atualização recente voltou a funcionar. Então, se você conseguir isso ao iniciar, apenas após o download da atualização:

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

e, em seguida, o steam crash, você está atingindo este bug , relatado como não fatal, mas falha na mesma distros. solução alternativa é esta:

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

boa sorte

    
por higuita 26.04.2015 / 21:22
20

Fastfix (testado no 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}
    
por itsnikolay 01.05.2015 / 19:41
17

O seguinte é de Erro ao instalar o Steam em ubuntu 15.04 e é de longe a resposta mais fácil para esta questão (como mencionado acima por tahtisilma ). Gostaria de acrescentar que se você quiser evitar a dor de ter que usar o terminal de comando a cada vez, então você pode editar o arquivo da área de trabalho na sua área de trabalho, clicando com o botão direito e selecionando propriedades e, em seguida, substituindo o comando no arquivo da área de trabalho com o seguinte:

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

Versão resumida:

Inicie o vapor no terminal usando:

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

em vez de apenas vapor

Versão longa:

O Steam não pode abrir nouveau_dri.so, a biblioteca compartilhada responsável por se comunicar com o driver gráfico. Para verificar se o driver está habilitado para OpenGL, execute:

DISPLAY=:0 glxinfo | grep -i direct

A saída deve ser:

renderização direta: sim Executando vapor no modo de depuração:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

Nos fornece a saída em que as seguintes linhas nos dão uma dica:

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

Parece que o steam usa uma versão diferente do libstdc ++. so.6. Vamos verificar qual versão usa o vapor:

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

Então, o Steam carregou o LibC6 com a versão 18 do ABI, onde o driver espera a versão 20. A solução é dizer ao sistema operacional para pré-carregar a versão correta do LibC6 usando a variável LD_PRELOAD:

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

O parâmetro $ LIB não intuitivo é expandido em ld.so para o caminho certo baseado na plataforma do processo que está sendo iniciado (man 8 ld.so para detalhes).

Você pode criar um script com o seguinte conteúdo para executá-lo em vez de vapor:

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

Um script melhor pode verificar se a versão global do LibC6 é mais recente que a de STEAM_RUNTIME e somente a de LD_PRELOAD.

Mais detalhes podem ser encontrados em aqui . Note que eu testei no Debian e agora ele foi testado no Ubuntu vivid 15.04 e funciona bem.

    
por miller the gorilla 25.07.2015 / 12:36
8

Isso funciona bem para mim no Ubuntu 15.04 64bits com driver proprietário da NVIDIA versão 346:

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam
    
por Vincent 02.05.2015 / 11:14
7

Esta é uma correção simples.

De acordo com a mensagem de erro, você não tem os seguintes arquivos: r600_dri.so e swrast_dri.so

Execute os seguintes comandos para instalar esses arquivos ausentes:

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

O problema agora deve ser resolvido.

Por favor, poste quaisquer erros adicionais.

    
por mchid 21.01.2016 / 08:54
1

Correção para o Ubuntu 16.04, Xenial Xerus, 64 bits

Eu só tive esse problema com o Steam desde a atualização para 16.04, funcionou bem em 14.04. Eu tentei todas as correções acima para versões mais antigas do Ubuntu.

A segunda parte do esta solução funcionou para mim .

$ 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

Agora estou executando o L4D2 no Ubuntu novamente - excelente!

    
por James Bradbury 21.05.2016 / 09:33
1

Essas duas linhas do comentário do menasheh sobre a questão do github funcionam com o Ubuntu 15.10 :

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

Observe que, se o Steam se atualizar, talvez seja necessário inserir essas linhas novamente.

    
por Chris McFarland 07.03.2016 / 07:49
0

Corri para essa questão em uma nova instalação do Ubuntu 18.04 LTS. Acontece que a versão em tempo de execução do Steam de libgcc_s.so.1 foi o culpado. Renomear o arquivo corrigiu o problema para mim:

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