mpioをCentOS5にインストールする

以前から注目していたid:viverさんのライブラリがリリースとのことです

並列イベント駆動I/Oフレームワークmpio」リリース
http://d.hatena.ne.jp/viver/20100412

マルチスレッド+ネットワーク なプログラム環境を整える手間が大幅に省けるようです。

早速インストールしてみます。手元の環境はCentOS5.4。
まずはここからダウンロードします。
http://github.com/frsyuki/mpio
githubのアカウントを持っている人はログインした状態で「fork」をクリックした後に

% git clone git@github.com:アカウント名/mpio

として引っ張ってきます。持っていない人はDownload Sourceして

% tar xvf frsyuki-mpio-*****.tar.gz

などとしましょう。

必要環境は
- linux >= 2.6.18
- g++ >= 4.1
- ruby >= 1.8.6
とREADMEに書かれています。CentOSの標準リポジトリでは2010年4月15日現在に置いてある物が
linux 2.6.18-164.el5
gcc-c++ 4.1.2-46.el5_4.2
ruby 1.8.5-5.el5_4.8
との事なので、rubyだけ要件を満たしません。公式サイトから入手しましょう。

http://www.ruby-lang.org/ja/downloads/
から安定版のtarを落としてきて

% tar xvf ruby-*****.tar.gz
% cd ruby-******.tar.gz
% ./configure
% make
# make install

とすればインストールできます。

% ruby --version

としてrubyが使えるかどうか、及びバージョンを確認しましょう。

使えない場合、パスが通っていません。デフォルトでは/usr/local/binに入っているようなので

% PATH=$PATH:/usr/local/bin/
% export PATH

などで使えるようにしましょう。

このままの状態でインストールしようとしてもCentOSデフォルトでは失敗します。
どうやらlibtool,automake,autoconfが必要なようです。

# yum install libtool automake autoconf

バージョン指定はありませんが、標準リポジトリに置いてあるもので大丈夫な様子です。
それぞれのバージョンは

libtool 1.5.22
automake 1.9.6
autoconf 2.59

でした。

あとは説明にかかれている通り

% ./bootstrap
% ./configure
% make
# make install

すれば完了するはずです。

しかし手元の環境では

$ make
.....
.....
g++ -DHAVE_CONFIG_H -I. -I. -I.. -I.. -O4 -Wall -g -MT libmpio_la-wavy_connect.lo -MD -MP -MF .deps/libmpio_la-wavy_connect.Tpo -c wavy_connect.cc -fPIC -DPIC -o .libs/libmpio_la-wavy_connect.o
In file included from wavy_kernel.h:52,
from wavy_loop.h:23,
from wavy_connect.cc:18:
./wavy_kernel_epoll.h:31:25: error: sys/timerfd.h: No such file or directory
./wavy_kernel_epoll.h:38:26: error: sys/signalfd.h: No such file or directory

とのエラーが出ます。まだ足りない物があるようです。
進んだら追記します。