Virtualbox上のUbuntuにSteamを入れた覚書


動機

archlinuxに移行しようとしたらsteamが公式ではArch LinuxはサポートされていませんとかSteam クライアントは32ビットアプリケーションなので、64ビット環境で動かすには multilib リポジトリを有効にする必要があります。また、重要な multilib ライブラリを取得するために multilib-devel のインストールをしてくださいとか言われて面倒になったので「ならvirtualbox上のubuntuに入れればええやん。そんなハイスペを要求するゲームしないし」となった。

環境

CPU: Core i5-4460
メモリ: 16GB
ホストOS: ubuntu16.04.3
ゲストOS: ubuntu16.04.3
virtualbox: 5.2.6 r120293 (Qt5.6.1)
ゲーム: Sakura Spirit

まだホストOSにubuntuを使っていますが、そのうちarch linuxにします。

準備

virtualboxのインストール、ubuntuのisoファイルのダウンロードは割愛

インストール

仮想マシン作成

virtualbox上に仮想マシンを作っていきます。
メモリは多め(4GB)、ハードディスクはVDI、ストレージは固定サイズ、ストレージサイズも多め(20GB)で動作確認しました。ストレージは固定サイズにしないとSteam起動前に「容量が足りない」と言われ失敗します。
これより少ないリソースで動くかは未検証。この辺はゲームによっても違いそうです。

今気づいたのですが、プロセッサー数1でも動きましたが設定でシステムのプロセッサー数を増やした方が良いと思います。

Steam導入

何はともあれアップグレードをかけます

$ sudo apt update
$ sudo apt upgrate
$ sudo apt install -y gdebi

私だけかもしれませんが、Ubuntuソフトウェアでdebファイルからインストールしようとすると上手くいかないのでgdebiを使ってインストールします。

steamの公式サイトからdebファイルをダウンロードします。

保存されたdebファイルをGDebiパッケージインストーラーで開き、インストール。
インストール後、steamを起動しようとすると依存解決が行われるので表示に従います。

依存解決後、ターミナルからsteamを起動しようとすると、

STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1437790054)
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

と言われ失敗します。(アイコンから起動するとsteamが無言で落ちてる)

失敗を確認した後、以下のコマンドを打ちます。

$ 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

steamの起動に失敗しないとファイルが作られていないので注意してください。

参考: Steam doesn't start. LibGL error - Ask Ubuntu

起動

あとは普通に起動してログインすればOKです。

ゲーム起動時に「パフォーマンスが足りない」というメッセージが表示されますがノベルゲームぐらいであれば問題なくプレイできました。

所感

「virtualboxならパフォーマンス悪いけど簡単に入るだろう」という見通しでいったら意外と手こずりました。
arch linux上にsteamをインストールした方が楽だったのでは説 is ある(ない)

今後はarch linuxにsteamを入れる方法を確立したいと思います。もし確立できなければ今回の方法でvirtualbox上のubuntuにsteamを入れてプレイします。