Ubuntu 15.04 に Steam をインストールする際のエラー

Ubuntu 15.04 に Steam をインストールする際のエラー
agung@agung-K43SJ:~$ 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

その前に、ターミナルから Steam をインストールしようとしましたが、アップデートをダウンロードした後、起動しませんでした。

Steam をインストールするための解決策を見つけるのを手伝ってくれる人はいませんか?

答え1

短縮版:

次のコマンドを使用してターミナルで Steam を起動します。

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

単にsteam

ロングバージョン:

Steam は、グラフィック ドライバーとの通信を担当する共有ライブラリを開くことができませんnouveau_dri.so。ドライバーが OpenGL 対応かどうかを確認するには、次を実行します。

DISPLAY=:0 glxinfo | grep -i direct

出力は次のようになります。

direct rendering: Yes

Steam をデバッグモードで実行する:

DISPLAY=:0 LIBGL_DEBUG=verbose steam

次の行がヒントとなる出力が表示されます。

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

Steam は の異なるバージョンを使用しているようですlibstdc++.so.6。Steam が使用しているバージョンを確認してみましょう。

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

そのため、Steam は、ドライバーがバージョン 20 を期待しているのに、ABI バージョン 18 の LibC6 をロードしました。解決策は、変数を使用して適切な LibC6 バージョンをプリロードするように OS に指示することです LD_PRELOAD

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

やや直感的ではない $LIB パラメータは、開始されるプロセスのプラットフォームに基づいて、ld.so 内で適切なパスに展開されます (詳細については、man 8 ld.so を参照してください)。

代わりに、次の内容のスクリプトを作成して実行できます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

より優れたスクリプトでは、グローバル LibC6 バージョンが のものより新しいかどうかをチェックしSTEAM_RUNTIME、新しい場合にのみ をチェックしますLD_PRELOAD

詳細は以下をご覧くださいここなお、私はこれを Debian でテストしましたが、現在は Ubuntu vivid 15.04 でもテストされており、正常に動作しています。

答え2

Steamクライアントを起動するのに役立った別の解決策はここにありました -

https://wiki.archlinux.org/index.php/Steam/トラブルシューティング

このコマンドを実行しました -

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

そして、Steamは追加のプリロードなしで起動します。Ubuntu 16.04で同じ問題を抱えているすべての人に役立つことを願っています。

答え3

おそらく、gccSteam ランタイムのライブラリはmesaドライバーと互換性がないのでしょう。ホームフォルダをバックアップする、次のライブラリ ファイルを削除してみてください:

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

答え4

どうやらこのエラーはSteamを64ビットUbuntu 15.04。

私は自分のマシンに Ubuntu 15.04 を新規インストールしました。また、NVIDIA 独自のグラフィック ドライバーもインストールしました。

このエラーが発生していましたが、よく見てみるとSteamは32ビットアプリケーションであることがわかったので、32ビットライブラリをいくつかインストールし、NVIDIAドライバーを再インストールしました。蒸気起動できました。

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

最後のコマンドはドライバー インストーラーになります。

ドライバー インストーラーが 32 ビット ライブラリのインストールを要求したら、[はい] をクリックします。

関連情報