GentooでGenymotionを利用する

友人の結婚式に参加したら、新幹線のホームの階段から落ちてションボリでした。

Androidの開発では、Intel製のシステムイメージを利用する方法がわりとメジャーなようですが、私の環境ではVirtualBoxとは同時に動作させられないということで、もうちょっと調べてみると、VirtualBoxAndroidのイメージを動作させる、といった趣旨の記事がありました。
その記事で紹介されていたのはAndroVMというものでしたが、いまではこれはGenymotionというものになっているようでした。

Genymotionの導入(Macへの)については、こちらの記事が非常に詳しかったです。
Genymotion で Android の超爆速エミュレータ環境を構築する | アドカレ2013 : SP #6

Genymotion自体も、Windows/Mac/Linuxマルチプラットフォーム対応なんですが、LinuxについてはUbuntu/Debianだけが公式にサポートされています。

ただ、私の環境はGentooなので、当然ながら公式にサポートされていません。他にも公式にサポートされていないディストリビューションで涙を流した方もいるかもしれませんので、動作させるために自分でやったことをメモっておきます。

準備

まずはVirtualBoxをインストールし、GenymotionからLinuxのバイナリをダウンロードします。

この辺はそれぞれのディストリビューションで異なると思いますので、それぞれで行ってください。Genymotionからのバイナリダウンロードには、Genymotionへのサインアップが必要になります。

Genymotionのインストール

ダウンロードしてきたバイナリを、仮にgenymotionとして、~/workに置いた、という前提で話を進めます。

以下のコマンドを実行することで、genymotionのあるディレクトリ/genymotionに、実行ファイルを含めた各種ファイルが展開されます。PATHに追加するかどうかはお好みだと思いますので、その辺は御自由にどうぞ。

$ chmod a+x genymotion
$ ./genymotion

Installing to folder [/home/derui/work/genymotion]. Are you sure [y/n] ? n

- Trying to find VirtualBox toolset .................... OK (Valid version of VirtualBox found: 4.3.10r93012)
- Removing old installation ............................ OK
- Extracting files ..................................... OK (Extract into: [/home/derui/work/genymotion])

Installation done successfully.

You can now use these tools from [/home/derui/work/genymotion]:
 - genymotion
 - genymotion-shell

あとは、genymotion/genymotionを起動すればいい・・・んですが、公式じゃない場合はこの辺で躓くはずです。私はこんな感じになりました。ちなみに私のデスクトップ環境はAwesomeWMで、GnomeとかKDEとかは一回も入れたことが無いような状態です。

$ ./genymotion/genymotion
./genymotion/genymotion: error while loading shared libraries: libgstapp-0.10.so.0: cannot open shared object file: No such file or director

lddで調べてみると、何個かshared object filesが欠けている状態でした。まぁ想定通りではありますが。

依存の解決編

ここからはとりあえずGentooの話になってしまうのでご了承下さい。まず困ったのが、上記のlibgstapp-0.10.soが64bit環境においてはどこのパッケージに入っているのかさっぱりわからない、ということでした。equeryしても出てこないのでマジで困りましたが、捜してみると、gst-plugins-baseというパッケージに入っていることがわかりました。
GenymotionはQTを利用して作成されているようで、どうもqt-gstreamerも必要そうな匂いがしましたので、こちらをemergeすることにしました。

$ sudo emerge qt-gstreamer

これがズバリでした。起動してからは、前述のサイトを参考にしてもらえればわかりやすいと思います。

以上、誰の役に立つかはわかりませんが、メモ書きでした。