Erro ao instalar o Steam no Ubuntu 15.04 [duplicado]

30
[email protected]:~$ steam
Running Steam on ubuntu 15.04 64-bit

STEAM_RUNTIME is enabled automatically

Installing breakpad exception handler for appid(steam)/version(0)

libGL error: unable to load driver: nouveau_dri.so

libGL error: driver pointer missing

libGL error: failed to load driver: nouveau

libGL error: unable to load driver: swrast_dri.so

libGL error: failed to load driver: swrast

Antes disso, eu também tentei instalar o Steam a partir do Terminal, mas ele não foi iniciado depois de ter baixado a atualização.

Alguém pode me ajudar a encontrar uma solução para instalar o Steam?

    
por Agung Wahyudi 13.06.2015 / 06:08

4 respostas

65

Versão resumida:

Inicie o vapor no terminal usando:

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

em vez de apenas steam

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:

direct rendering: Yes

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 de 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 LD_PRELOAD variable:

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

Um script melhor pode verificar se a versão global do LibC6 é mais recente que a de STEAM_RUNTIME e somente 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 Tahtisilma 16.07.2015 / 07:39
27

Outra solução que me ajudou a lançar o cliente Steam foi encontrada aqui -

link

Eu executei este comando -

find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete

e agora o lançamento do Steam sem pré-carregamentos adicionais. Espero que isso ajude a todos que têm o mesmo problema no Ubuntu 16.04

    
por philfaint 21.05.2016 / 20:07
6

Talvez as gcc libs no tempo de execução do Steam sejam incompatíveis com seus mesa drivers. Faça o backup de sua pasta pessoal e tente excluir esses arquivos de biblioteca:

rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/usr/lib/i386-linux-gnu/libstdc++.so.6
rm ~/.local/share/Steam/ubuntu12_32/steam-runtime/i386/lib/i386-linux-gnu/libgcc_s.so.1
    
por Zivit 24.01.2016 / 23:14
4

Aparentemente, este erro acontece quando alguém tenta instalar o Steam em um 64bits Ubuntu 15.04.

Eu fiz uma nova instalação do Ubuntu 15.04 na minha máquina. Eu também instalei os drivers gráficos proprietários da NVIDIA.

Eu estava recebendo este erro, mas depois de observar cuidadosamente notei que o vapor é um aplicativo de 32bits, então instalei algumas bibliotecas de 32bits e reinstalei o driver da NVIDIA para que o Steam pudesse ser iniciado.

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
sudo ./NVIDIA-Linux-x86_64-352.63.run

Onde o último comando deve ser o seu instalador de driver.

Quando o instalador do driver solicitar a instalação de bibliotecas de 32bits, pressione sim.

    
por McLeary 22.12.2015 / 22:13