Centos 5. 1 に kumofs 0.3.1 をインストール

| コメント(0) | トラックバック(0)

kumofs について

最近 OSS としてリリースされて話題の Key Value Store。 試して見ようと思ってインストールしたら何度かつまづいたので、 メモしておきます。

  • Centos である
  • gccが4.1系である

という条件でコケる傾向にあるようです。 kumofs 0.3.0 でこれを解決するのはなかなか面倒っぽかったのですが、さっそく 0.3.1 がリリースされて俺でもビルドできたので、似たような環境で悩んでる人に助けになれば。

環境

米国 VPS のひとつ Linode 上の Centos 5.1 でインストールを試みました。Rubygems が入ってる以外はほぼ登録直後の状態。デフォルトで入っていたgccは4.1.2でした。こいつが諸悪の根源だったようす。

手順

基本的には以下の手順どおり:

必要なもの

Githubのwikiを参考に、今回入れたものをとかデフォルトで入ってたものを明記しときます。

  1. linux: 2.6.18 (デフォルト)
  2. gcc = 4.4.0 (yumから)
  3. g++ = 4.4,0 (yumから)
  4. ruby = 1.8.7 (デフォルト)
  5. Tokyo Cabinet >= 1.4.41 (ソースから)
  6. MessagePack for C++ = 0.4.1 (ソースから)
  7. MessagePack for Ruby = 0.3.2 (gemから)
  8. libcrypto (openssl) (デフォルト)
  9. zlib (デフォルト)
  10. kumofs = 0.3.1 (ソースから)

gcc 4.4とg++ 4.4 をインストール

gcc/g++ 4.1だとkumofs のビルドに失敗します( _syncandaddfetch_4 がどうとか言われる)。なので、先にgcc/g++ 4.4をインストールしておく。こいつらはTokyo Cabinet とかのビルドには使わなくてもOK。

yumから入ります。

# yum install gcc44 gcc44-c++
# gcc44 -v
# g++44 -v

Tokyo Cabinet をインストール

バックエンドとして利用される Tokyo Cabinet をインストールします。僕は 1.4.41 を利用。

./configure してようとするとbzip2がらみの何かがないとか言われます。そしたらdevelを入れてやりましょう。

# yum install bzip2-devel bzip2-libs
$ ./condifure
$ make
# make install

どこに入ったか覚えて置きましょう。デフォルトは /usr/local/libです。

Message Pack for C++ をインストール

SourceForgeのリリースページから最新版の 0.4.1 をダウンロードします。

で、ここで gcc44 と g++44 が登場。 ./configure します。

$ CC=gcc44 CXX=g++44 ./configure
$ make
# make install

ここでもインストール先を覚えておきましょう。デフォルトなら /usr/local/lib です。

Message Pack for Ruby をインストール

これはgemから。

# gem install msgpack

kumofs をインストール

これでラスト。最新版の 0.4.1 を使います。Githubのリリースページか、git clone します。

ここでも gcc44 と g++44 が登場。

$ CC=gcc44 CXX=g++44 ./configure
$ make
# make install

起動してみる

急いでインストールしたので、今回はkumo-manager を起動するだけです。

$ kumo-manager -v
kumo-manager: error while loading shared libraries: libtokyocabinet.so.9: cannot open shared object file: No such file or directory

おうふ! Tokyo Cabinet と MessagePack のインストール先を教えてあげましょう。

$ export LD_LIBRARY_PATH=/usr/local/lib
$ kumo-manager -v
usage: kumo-manager -l  -p 

  -p     --partner        master-slave replication partner
  -a                        --auto-replace   enable auto replacing
  -Rs             --replace-delay  delay time of auto replacing in sec.
  -k      --keepalive-interval     keepalive interval in seconds
  -Ys     --connect-timeout        connect timeout time in seconds
  -Yn     --connect-retry-limit    connect retry limit
  -Ci     --clock-interval         clock interval in seconds
  -TW     --write-threads          number of threads for asynchronous writing
  -TR     --read-threads           number of threads for asynchronous reading
  -o      --log                    output logs to the file
  -g     --binary-log             enable binary log
  -v                --verbose
  -d      --daemon

  v0.3.1 revision 5b53cc4277e6ed951db7f599de9fcfcd3738b2cd Wed Jan 20 15:52:34 2010 +0900

error: required but not set: -l

うふふ

トラックバック(0)

トラックバックURL: http://www.tnzk.org/mt/mt-tb.cgi/303

コメントする

このブログ記事について

このページは、tnzkが2010年1月21日 12:15に書いたブログ記事です。

ひとつ前のブログ記事は「2010: A Small Space Odyssey」です。

次のブログ記事は「Ruby から kumofs に触ってみる」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 4.32-ja