cassandraに挑戦 その8 thriftのインストール

PHPやJavaのcassandraクライアントを作るために、
interface以下のコンパイルをしたいので、
まずはThriftのインストールをした。

Thriftのダウンロードはこちら

自分の環境では何点かはまったけど、以下の手順でインストールできた。
Thriftのバージョンは、0.2.0
$ sudo aptitude install automake libtool pkg-config libboost-dev byacc mono-2.0-service flex
$ sudo vi /usr/share/aclocal/libmcrypt.m4
$ diff -cw /usr/share/aclocal/libmcrypt.m4 /usr/share/aclocal/libmcrypt.m4.org
*** /usr/share/aclocal/libmcrypt.m4     2010-03-13 19:47:17.000000000 +0900
--- /usr/share/aclocal/libmcrypt.m4.org 2010-03-13 19:47:24.000000000 +0900
***************
*** 14,20 ****
  dnl AM_PATH_LIBMCRYPT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
  dnl Test for libmcrypt, and define LIBMCRYPT_CFLAGS and LIBMCRYPT_LIBS
  dnl
! AC_DEFUN([AM_PATH_LIBMCRYPT],
  [dnl
  dnl Get the cflags and libraries from the libmcrypt-config script
  dnl
--- 14,20 ----
  dnl AM_PATH_LIBMCRYPT([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
  dnl Test for libmcrypt, and define LIBMCRYPT_CFLAGS and LIBMCRYPT_LIBS
  dnl
! AC_DEFUN(AM_PATH_LIBMCRYPT,
  [dnl
  dnl Get the cflags and libraries from the libmcrypt-config script
  dnl
$ ./bootstrap.sh
$ ./configure
$ mv libtool libtool.org
$ which libtool
$ ln -s /usr/bin/libtool libtool
$ ll libtool*
lrwxrwxrwx 1 satoshi satoshi     16 2010-03-13 19:32 libtool -> /usr/bin/libtool
-rwxr-xr-x 1 satoshi satoshi 220181 2010-03-13 19:23 libtool.org
$ make
$ sudo make install
$ which thrift
/usr/local/bin/thrift
$ thrift -version
Thrift version 0.2.0-exported
はまった点は以下
  • bootstrap.shで、[Debian] warning: underquoted definition of AM_PATH_LIBMCRYPT が出るので、こちらを参考に修正
  • makeの途中でlibtool関連のエラーで止まる

    • 同梱されている?libtoolを使わずに、aptitudeでinstallされた/usr/bin/libtoolを使うようにリンクを設定した
Thriftのインストールはうまくいったので、PHPインターフェースも
インストールしてみる。
$ lib/php/
$ sudo mkdir /usr/share/php/Thrift
$ sudo cp -R src/* /usr/share/php/Thrift/
これでインストールはできたので、
次は、cassandraのPHPクライアントを作ってみようと思う。

参考:
http://www.x0rz.com/2009/09/installing-thrift-interface-on-debian/
http://d.hatena.ne.jp/covanew/20081112/1226511336