Thriftインストールメモ
CentOS-5.5(5.4でも同じだった)にThriftを入れるメモ。
事前に必要なパッケージがあるので予め入れておく。
http://wiki.apache.org/thrift/GettingCentOS5Packages
$ sudo yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel libevent-devel zlib-devel python-devel ruby-devel
Thriftのダウンロードと解凍
$ wget http://ftp.riken.jp/net/apache/incubator/thrift/0.2.0-incubating/thrift-0.2.0-incubating.tar.gz $ tar -zxvf thrift-0.2.0-incubating.tar.gz $ cd thrift-0.2.0
インストールはこれを参考に…してはいけない
http://wiki.apache.org/thrift/ThriftInstallation
これを読むとまず最初に bootstrap.sh を実行するように書いてあるのだけど,
これを実行すると具合の悪いことになるる。
以下のようにマクロが見つからないなどと言われてしまう。
configure.ac:50: error: possibly undefined macro: AC_PROG_MKDIR_P If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. configure.ac:147: error: possibly undefined macro: AC_TYPE_INT16_T configure.ac:148: error: possibly undefined macro: AC_TYPE_INT32_T
そして,cleanup.sh を実行するとconfigureも消えてしまいハマります。
一応このマクロが見つからないエラーはautoconfのバージョンを上げると出なくなったのだけど(2.61以降?),
そもそも bootstrap.sh をスルーすればより平和にビルドができる。
(CentOSの場合。Ubuntuだとwikiの手順どおりでビルドできた。)
$ ./configure
$ make
$ make install
$ thrift -version
Thrift version 0.2.0-exported
最後に,インストールされるファイルのリスト。(107個)
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod /usr/lib/perl5/site_perl/5.8.8/Thrift.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/BinaryProtocol.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/BufferedTransport.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/FramedTransport.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/HttpClient.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/MemoryBuffer.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/Protocol.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/Server.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/Socket.pm /usr/lib/perl5/site_perl/5.8.8/Thrift/Transport.pm /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/Thrift/.packlist /usr/lib/python2.4/site-packages/thrift/TSCons.py /usr/lib/python2.4/site-packages/thrift/TSCons.pyc /usr/lib/python2.4/site-packages/thrift/Thrift.py /usr/lib/python2.4/site-packages/thrift/Thrift.pyc /usr/lib/python2.4/site-packages/thrift/__init__.py /usr/lib/python2.4/site-packages/thrift/__init__.pyc /usr/lib/python2.4/site-packages/thrift/protocol/TBinaryProtocol.py /usr/lib/python2.4/site-packages/thrift/protocol/TBinaryProtocol.pyc /usr/lib/python2.4/site-packages/thrift/protocol/TProtocol.py /usr/lib/python2.4/site-packages/thrift/protocol/TProtocol.pyc /usr/lib/python2.4/site-packages/thrift/protocol/__init__.py /usr/lib/python2.4/site-packages/thrift/protocol/__init__.pyc /usr/lib/python2.4/site-packages/thrift/protocol/fastbinary.so /usr/lib/python2.4/site-packages/thrift/server/THttpServer.py /usr/lib/python2.4/site-packages/thrift/server/THttpServer.pyc /usr/lib/python2.4/site-packages/thrift/server/TNonblockingServer.py /usr/lib/python2.4/site-packages/thrift/server/TNonblockingServer.pyc /usr/lib/python2.4/site-packages/thrift/server/TServer.py /usr/lib/python2.4/site-packages/thrift/server/TServer.pyc /usr/lib/python2.4/site-packages/thrift/server/__init__.py /usr/lib/python2.4/site-packages/thrift/server/__init__.pyc /usr/lib/python2.4/site-packages/thrift/transport/THttpClient.py /usr/lib/python2.4/site-packages/thrift/transport/THttpClient.pyc /usr/lib/python2.4/site-packages/thrift/transport/TSocket.py /usr/lib/python2.4/site-packages/thrift/transport/TSocket.pyc /usr/lib/python2.4/site-packages/thrift/transport/TTransport.py /usr/lib/python2.4/site-packages/thrift/transport/TTransport.pyc /usr/lib/python2.4/site-packages/thrift/transport/TTwisted.py /usr/lib/python2.4/site-packages/thrift/transport/TTwisted.pyc /usr/lib/python2.4/site-packages/thrift/transport/__init__.py /usr/lib/python2.4/site-packages/thrift/transport/__init__.pyc /usr/local/bin/thrift /usr/local/include/thrift/TLogging.h /usr/local/include/thrift/TProcessor.h /usr/local/include/thrift/TReflectionLocal.h /usr/local/include/thrift/Thrift.h /usr/local/include/thrift/concurrency/Exception.h /usr/local/include/thrift/concurrency/FunctionRunner.h /usr/local/include/thrift/concurrency/Monitor.h /usr/local/include/thrift/concurrency/Mutex.h /usr/local/include/thrift/concurrency/PosixThreadFactory.h /usr/local/include/thrift/concurrency/Thread.h /usr/local/include/thrift/concurrency/ThreadManager.h /usr/local/include/thrift/concurrency/TimerManager.h /usr/local/include/thrift/concurrency/Util.h /usr/local/include/thrift/config.h /usr/local/include/thrift/processor/PeekProcessor.h /usr/local/include/thrift/processor/StatsProcessor.h /usr/local/include/thrift/protocol/TBase64Utils.h /usr/local/include/thrift/protocol/TBinaryProtocol.h /usr/local/include/thrift/protocol/TCompactProtocol.h /usr/local/include/thrift/protocol/TDebugProtocol.h /usr/local/include/thrift/protocol/TDenseProtocol.h /usr/local/include/thrift/protocol/TJSONProtocol.h /usr/local/include/thrift/protocol/TOneWayProtocol.h /usr/local/include/thrift/protocol/TProtocol.h /usr/local/include/thrift/protocol/TProtocolException.h /usr/local/include/thrift/protocol/TProtocolTap.h /usr/local/include/thrift/server/TNonblockingServer.h /usr/local/include/thrift/server/TServer.h /usr/local/include/thrift/server/TSimpleServer.h /usr/local/include/thrift/server/TThreadPoolServer.h /usr/local/include/thrift/server/TThreadedServer.h /usr/local/include/thrift/transport/TBufferTransports.h /usr/local/include/thrift/transport/TFDTransport.h /usr/local/include/thrift/transport/TFileTransport.h /usr/local/include/thrift/transport/THttpClient.h /usr/local/include/thrift/transport/TServerSocket.h /usr/local/include/thrift/transport/TServerTransport.h /usr/local/include/thrift/transport/TShortReadTransport.h /usr/local/include/thrift/transport/TSimpleFileTransport.h /usr/local/include/thrift/transport/TSocket.h /usr/local/include/thrift/transport/TSocketPool.h /usr/local/include/thrift/transport/TTransport.h /usr/local/include/thrift/transport/TTransportException.h /usr/local/include/thrift/transport/TTransportUtils.h /usr/local/include/thrift/transport/TZlibTransport.h /usr/local/lib/libthrift.a /usr/local/lib/libthrift.la /usr/local/lib/libthrift.so /usr/local/lib/libthrift.so.0 /usr/local/lib/libthrift.so.0.0.0 /usr/local/lib/libthriftnb.a /usr/local/lib/libthriftnb.la /usr/local/lib/libthriftnb.so /usr/local/lib/libthriftnb.so.0 /usr/local/lib/libthriftnb.so.0.0.0 /usr/local/lib/libthriftz.a /usr/local/lib/libthriftz.la /usr/local/lib/libthriftz.so /usr/local/lib/libthriftz.so.0 /usr/local/lib/libthriftz.so.0.0.0 /usr/local/lib/pkgconfig/thrift-nb.pc /usr/local/lib/pkgconfig/thrift-z.pc /usr/local/lib/pkgconfig/thrift.pc