openmediavaultにPocketMineをインストールする

PocketMineの公式Webには、ワンライナーでいかにも簡単に導入できるような記載があるが、いろいろと落とし穴がある。

事前に必要なソフトウェア

PocketMineはバイナリではなくソースで配布されており、インストール中にconfigureやmakeが行われて実行可能なバイナリが生成される。openmediavaultには必要最小限のパッケージしか導入されていないため、初期状態でインストールを開始すると諸々コマンドが足りず失敗する。まず、公式Webに記載のある

コンパイルに必要なソフトウェアをインストールする必要があります。perl gcc make automake libtool autoconf m4これらをインストールしてください。

perlgccmakeautomakelibtoolautoconfm4を導入する。

# apt-get install perl gcc make automake libtool autoconf m4

ほか、上記に加えてbzip2g++を導入しておく必要がある。

# apt-get install bzip2 g++

これが不足していると、一見インストールが正常終了したように見えても実はconfigureに失敗していて、PocketMineが正常に動作しない。インストール終了後はinstall.logを確認してエラーがないことを確認した方が良い。

PocketMineのバージョン

これはopenmediavaultに限った話ではないのだが、公式Webのワンライナーで導入されるPocketMineは古い*1ようだ。そのため、公式Webのワンライナーの通りにインストールを行っても、APIのバージョン違いのためかMincraft PE側からPocketMineを見つけることができず頭を抱える羽目になる。

最新版のMinecraft PEに対応した開発版パッケージはPocketMine Forumsで公開されている。例えば、2016/01/24時点のMinecraft PE最新バージョンであるv0.13.1 alphaに対応したバージョンはRelease - PocketMine-MP 1.6dev-1266 is now available! | PocketMine Forumsの記事で公開されている。

このフォーラム記事中にインストールのためのワンライナーが記載されているので、それを実行すれば良い。

wget -q -O - https://raw.githubusercontent.com/PocketMine/php-build-scripts/master/installer.sh | bash -s - -v development

ワンライナー中のURLを見る限り、特定バージョン向けではなく開発版の最新バージョンを導入するように見えるので、Minecraft PE側がアップデートした直後はこの手順でもバージョンのミスマッチが起きるかもしれない。

Supported MCPE Versions — PocketMine-MP DocumentationでもPocketMineとMinecraft PEの対応バージョンが記載されている模様。最新のMinecraft PEを使う場合はPocketMineが追随できているか、ここで確認できそう*2

*1:2016/01/23時点のPocketMine対応バージョンはv0.10.5 alpha。このときのiOS版のMinecraft PEはv0.13.1 alphaである

*2:PocketMineの作者はMojang勤務になったそうなので、タイムラグなしにリリースされそうではあるが - I'm working at Mojang! | PocketMine Forums