web-dev-qa-db-ja.com

Ubuntu 15.04+にSteamをインストールする際の問題

実際、新しいUbuntu 15.04 64ビットをインストールしましたが、Steamをインストールしようとすると問題が発生します。実際、Steam Webサイトからdebパッケージをダウンロードしてインストールしましたが、起動しても何も起こりません。ターミナルから始めようとしたのですが

$ 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
103
saber hammami

これはもともとUbuntu 15.04/15.10のSteamの問題でした。 Steamは古いライブラリをバンドルしており、mesaドライバーと衝突しているため、クローズドドライバーはこの問題を認識していません。更新:また、いくつかの項目が欠落している可能性があります。他のmchidの答えをご覧ください。

Steamのgithubの未解決のバグ があります。

現在の回避策は、少なくともValveが起動スクリプトなどの問題を修正するまで、古いlibバージョンを削除することです。

これらのフォルダーを入力して、これを実行します(32ビットシステムしかない場合はx86_64を無視してください):

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

上記のディレクトリに問題がある場合は、これを試してください:

.Steam/steam/ubuntu12_32を持っている人もいれば、.Steam/ubuntu12_32だけを持っている人もいます。これらのフォルダーがない場合は、Steamがユーザープロファイルを探している場所を確認して、正しい場所を見つけてください。

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

それを使用して、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

それは私のために働いた...しかし、いくつかのゲームがSteamランタイムからその古いライブラリを必要とした場合、クラッシュする可能性があることに注意してください(Valveがこれを修正する理由です)

2015-08-22を編集:

Steamは$HOME/.Steam/rootに常に正しいSteamインストールディレクトリを指すリンクを持っているので、このコマンドはすべての人に対して機能し、迅速な修正のためによりシンプルになります:

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

また、Steamランタイム更新ごとに、おそらくこれを実行する必要があることを覚えておいてください。

2016-02-16を編集:

以下のmchidの返信もご覧ください。

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

これを修正するには十分かもしれません。

2016-10-23を編集:

ubuntu 16.10の場合、コマンドが更新され、mesaドライバーを破損しているファイルがさらに削除されるため、この新しいコマンドは機能するはずです。

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

NVIDIAクローズドソースドライバーについては、以下のVincentの回答を参照してください。

2017-01-08の編集:

おそらく最後の編集であり、最新のSteam linuxアップデートはすべてではないにしても、ほとんどの問題を修正するでしょう!最後に! :D

2017-08-03を編集:

悲しいことに、休暇から戻って、最近のアップデートで再びSteamが壊れたことがわかりました。そのため、更新のダウンロード直後に起動時にこれを取得した場合:

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

その後、Steamがクラッシュすると、致命的ではないと報告された thisbug になりますが、同じディストリビューションでSteamがクラッシュします。回避策は次のとおりです。

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

幸運を

115
higuita

Fastfix(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}
20
itsnikolay

以下は buntu 15.04にSteamをインストールする際のエラー からのものであり、この質問に対する最も簡単な答えです(上記で tahtisilma で述べたように)。コマンドターミナルを毎回使用しなければならないという苦痛を避けたい場合は、デスクトップでデスクトップファイルを編集できます。右クリックしてプロパティを選択し、デスクトップファイルのコマンドを以下:

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

短縮版:

以下を使用して、ターミナルでSteamを起動します。

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

steamだけではなく

ロングバージョン:

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

DISPLAY=:0 glxinfo | grep -i direct

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

ダイレクトレンダリング:はいデバッグモードで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はLibC6をABIバージョン18でロードしましたが、ドライバーはバージョン20を想定しています。解決策は、OSにLD_PRELOAD変数を使用して適切なLibC6バージョンをプリロードするよう指示することです。

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のみがチェックできます。

詳細は here で見つけることができます。 Debianでテストしたところ、Ubuntu vivid 15.04でテストされ、正常に動作することに注意してください。

18

これは、Ubuntu 15.04 64ビットで、プロプライエタリドライバーNVIDIAバージョン346で正常に動作します。

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" Steam
8
Vincent

これは簡単な修正です。

エラーメッセージによると、次のファイルがありません:r600_dri.soおよびswrast_dri.so

これらの欠落ファイルをインストールするには、次のコマンドを実行します。

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

これで問題は解決するはずです。

追加のエラーを投稿してください。

8
mchid

github問題に関するmenashehのコメント からの次の2行は、Ubuntu 15.10で機能します。

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

Steamがそれ自体を更新する場合、これらの行を再度入力する必要がある場合があることに注意してください。

1
Chris McFarland

Ubuntu 16.04、Xenial Xerus、64ビットの修正

16.04にアップグレードしてからSteamでこの問題が発生したのは、14.04でうまくいきました。 Ubuntuの古いバージョンに対して上記のすべての修正を試みました。

このソリューション の2番目の部分は、私にとってはうまくいきました。

$ 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

今、私は再びUbuntuでL4D2を実行しています-すばらしい!

1
James Bradbury

16.04以降

IMG:  Steamは、現在サポートされているUbuntuのすべてのバージョンにflatpakパッケージとしてインストールできます。ターミナルを開き、次を入力します。

Sudo add-apt-repository ppa:alexlarsson/flatpak#required in 16.04 それ以降のリリースではない
 Sudo apt update 
 Sudo apt install flatpak 
 flatpak remote-add --if-not-exists flathub https://flathub.org/repo/ flathub.flatpakrepo 
 flatpak install flathub com.valvesoftware.Steam

Flatpakパッケージはデフォルトのリポジトリにあるため、ppa:alexlarsson/flatpakを追加する最初のコマンドは18.04以降では必要ありません。

Steamは、ダッシュのアイコンをクリックして起動するか、ターミナルから次のコマンドで起動できます。

flatpak run com.valvesoftware.Steam   

多くのゲームではオンラインでの購入が必要ですが、Team Fortress 2などの人気のあるゲームは無料でプレイできます。ストアで検索するときは、必ずSteamOS/Linuxオペレーティングシステムで結果を絞り込んでください。すべてのLinuxゲームがシステムと互換性があるわけではないため、ゲームを購入する前に要件を確認してください。

0
karel

Ubuntu 18.04 LTSの新規インストールでこの問題に遭遇しました。 libgcc_s.so.1のSteamランタイムバージョンが原因であることが判明しました。ファイルの名前を変更すると、問題が修正されました:

$ cd ~/.Steam/root/ubuntu12_32/Steam-runtime/i386/lib/i386-linux-gnu/
$ mv libgcc_s.so.1 libgcc_s.so.1.bak
0
BrianD