http://www.danga.com/memcached/
ダウンロード・解凍し、README を読んでみると、libevent というライブラリが必要であり、libevent は epoll を実装したカーネルに依存するとある(Linux の場合)。epoll は必須というわけではなく、libevent は通常の select システムコールを使っても動くらしいが、その選択はいいとはいえないらしい。
http://www.linux.or.jp/JM/html/LDP_man-pages/man7/epoll.7.html
Linux カーネル 2.6 以降なら epoll は実装されているようで、これは問題なかった。
libevent 1.2a をダウンロードして、インストール。
http://www.monkey.org/~provos/libevent/
README にしたがい、
$ ./configure && make
# make install
$ make verify
でインストール。最後のは、Regression テスト。これで /usr/local/lib/ にインストールされた。また、/usr/local/bin/ に event_rpcgen.py という Python スクリプトもインストールされる。
この後、memcached も次のようにインストール。
$ ./configure --with-libevent=/usr/local/lib/
$ make
# make install
これで /usr/local/bin/ に memcached と memcached-debug というコマンドがインストール。
以上が済んで、
$ memcached -m 256 -l 127.0.0.1 -p 11211
とすると、
memcached: error while loading shared libraries: libevent-1.2a.so.1: cannot open shared object file: No such file or directory
というエラーメッセージが出た。どうも先にインストールした libevent を見つけることができないようだ。実際、
$ ldconfig -p
とやっても、libevent は出てこない。/usr/local/lib は /usr/lib, /lib と違って、常に検索されるライブラリではないからだ。そこで、/etc/ld.so.conf を作成し、そこに ld.so.conf を記述し、ldconfig を実行した。こうすると、/etc/ld.so.cache に登録されるので、検索されるようになる。実際、ldconfig -p で確認できた。
その後、
$ memcached -m 256 -l 127.0.0.1 -p 11211
とすると、起動できた。-d オプションをつけるとデーモンになる。
$ telnet localhost 11211
で接続はできることを確認。後はクライアント API をセットアップしていろいろ試そう。
No comments:
Post a Comment