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


103

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

$ 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

偶然にAMDアーキテクチャを使用していますか?

radeon GPUを搭載したAMDシステムでこのエラーが発生しましたが、まだ14.10を使用しています-ただし、aptitudeでカーネルを更新しました。更新ログから、linux-image-3.16.0-41-generic:amd64 (3.16.0-41.57, automatic)以前使用していたときに取得しましたLinux 3.16.0-37-generic
pbhj

libstdc ++。so.6の移動の修正は機能しているようです。
pbhj

askubuntu.com/questions/635851/に投稿されているソリューションを試すこともできます。これはもっとエレガントだと思います。
ターティシルマ

回答:


115

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

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

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

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

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。これらのフォルダーがない場合は、スチームがユーザープロファイルを探している場所を確認して、正しい場所を見つけてください。

$ 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ランタイムからその古いライブラリを必要とした場合、クラッシュする可能性があることに注意してください(バルブがこれを修正する必要がある理由です)

編集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のコマンドは、メサドライバを壊している複数のファイルを削除するように更新されましたので、この新しいコマンドが動作するはずです:

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は、ソースドライバを閉じて、以下のヴィンセントの回答を参照してください。

編集2017-01-08:

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

編集2017-08-03:

悲しいことに、休暇から戻ってきて、最近の更新が再び蒸気を発したことがわかりました。そのため、更新のダウンロード直後に起動時にこれを取得した場合:

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

そして、蒸気がクラッシュすると、この バグにぶつかり、致命的ではないと報告されますが、同じディストリビューションで蒸気をクラッシュさせます。回避策は次のとおりです。

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

幸運を


1
こんにちは、私が孤独かどうかはわかりませんが、15.04の新しいインストールに.debパッケージをインストールしただけで正常に動作します。残念なことに、半分のゲームをプレイすることはできません... Unixであるという意味で。
thenaglecode

3
これはまだ12月に壊れていますか?ワオ。バルブサック。
ウォーレンP

1
このすべてのトリックは16.10では機能しません
QkiZ

1
Steamからバージョンをアンインストールし、Ubuntuリポジトリからバージョンをインストールしましたが、動作します。
QkiZ

3
ちょっと注意してください。16.10では、コマンドは私にとってはうまくいきませんでしたが、ここで見つかったコマンドは機能しました:askubuntu.com/a/775667
-rjp

20

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}

3
それは確かに1つのエラーメッセージを押しつぶし、まだそれがswrastロードすることはできませんと言っています- - -うーん、これはそれを動作させるつもりだったように見えた
RM-バンダ

1
各Steam更新後にこれを再度適用する必要があります。
-bebbo

繰り返しますが、これはOPエラーメッセージを修正しません
-mchid

私はXenial 16.04のOPと同じエラーメッセージで同じ問題を抱えていましたが、これは私にとってはうまくいきました。Steamを初めて起動する前にこれらのコマンドを1回実行し、Steamの最初の更新後に2回実行する必要がありました。
マクシミリアンラウメイスター

18

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

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

短縮版:

以下を使用して、ターミナルでスチームを開始します。

LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 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のバージョンだけが新しいかどうかをチェックできます。

詳細はこちらをご覧ください。Debianでテストしたところ、Ubuntu vivid 15.04でテストされ、正常に動作することに注意してください。


デスクトップファイルの編集は機能しますが、alacharteを使用してメニューエントリを作成してからデスクトップファイルのスチームを削除しない限り、.local / share / applications / steam.desktopにあるメインメニュー(xubuntu)エントリのデスクトップファイルが機能しません。 .local / share / applications / steam.desktopで.desktopを実行し、.local / share / applicationsから次のようにデスクトップファイルにリンクします。ln-s〜/ Desktop / steam.desktop〜/ .local / share / applications / steam .desktop
ゴリラの製粉業者

上記のいくつかの答えが示唆したように、最初にファイルを移動しました。しかし、あなたが指摘した輸出によってのみ、私は私のubuntu 15.04に取り組んでいます。どうもありがとう!:D
ルーベンス

heck $LIB変数はどこに設定されていますか?多くの人々がそれについて言及し、それはどこにも定義されていません
セルギー・コロディアズニー

8

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

LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-346/:/usr/lib/nvidia-346/" steam

別の修正は前に私のために働いていたが、私は私のヌーボードライバをブラックリストした後、私のNvidiaドライバを再インストールする必要がありましたし、その後蒸気はそれほど起動しないだろう、これはそれをうまくいけば、この問題は、Ubuntuの16.04が出る時点で固定されます。この時間は、固定
resonant7handを

- :これは、任意のnvidiaのバージョン(アラン・梅クレジットで動作するはずgithub.com/ValveSoftware/steam-for-linux/issues/...:)NVIDIA_VERSION=$(nvidia-settings -q NvidiaDriverVersion | grep -oP "[0-9]{3}" | sed -n 1p); export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/lib32/nvidia-$NVIDIA_VERSION:/usr/lib/nvidia-$NVIDIA_VERSION"
higuita

8

これは簡単な修正です。

エラーメッセージによると、次のファイルが欠落していますr600_dri.soし、swrast_dri.so

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

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

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

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


1
Valveのスタッフがいる場合、質問があります。なぜubuntuインストーラのスチームはMesaインストールをプローブし、不足している部品を見つけてインストールしますか?
ウォーレンP

まったく解決されていませんが、問題のライブラリはすでに最新バージョンになっています。
mystrdat

これは私のためにそれを修正しました。これが最初の試みです。
matthew_360

1

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を実行しています-すばらしい!


すでにdpkgを入手している場合、gdebiをインストールする必要はありませんsudo dpkg -i ./steam.deb
。– CSkau

1
gdebiは依存関係をインストールしますが、dpkgはインストールしません。
ハボック


0

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

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

0

16.04以降

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

sudo add-apt-repository ppa:alexlarsson / flatpak#16.04でのみ必要で、今後のリリースでは不要
sudo aptアップデート 
sudo aptインストールflatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpakインストールflathub com.valvesoftware.Steam

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

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

flatpak run com.valvesoftware.Steam   

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.