RichContext インストールメモ

先日オープンソースとなってリリースされた、リコメンデーションエンジン「RichContext」を早速インストールしてみた。いくつかハマって、開発元の株式会社イーウェーヴの方とやりとりしたのでメモ。

その前にRichContextについて知りたい方はこちら。まだまだ情報は少ない印象です。

http://www.richcontext.jp/


まず、必要なライブラリのインストールから。ちなみにインストールした OS は CentOS 5.1 です。
標準のリポジトリでは rpm パッケージが見つからなかったのですが、探すのも面倒なのでおとなしくソースから入れました。PostgreSQL も必要ですが、こちらはインストール済みだったので省略しています。RPM で入れてしまえば OK だと思います。

1. APR インストール

$ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-1.3.3.tar.gz
$ tar xzvf apr-1.3.3.tar.gz
$ cd apr-1.3.3
$ ./configure --prefix=/usr --libdir=/usr/lib
$ make
$ su
# make install

2. APR-Util インストール

$ wget http://ftp.kddilabs.jp/infosystems/apache/apr/apr-util-1.3.4.tar.gz
$ tar xzvf apr-util-1.3.4.tar.gz
$ cd apr-util-1.3.4
$ ./configure --prefix=/usr --libdir=/usr/lib --with-apr=/usr
$ make
$ su
# make install

3. Apache log4cxx インストール

$ tar zxf apache-log4cxx-0.10.0.tar.gz
$ cd apache-log4cxx-0.10.0
$ ./autogen.sh
$ ./configure --prefix=/usr --libdir=/usr/lib
$ make
$ su
# make install

4. Xerces-C++ インストール

$ cd /usr/local/lib/
$ su
# wget http://ftp.kddilabs.jp/infosystems/apache/xerces/c/sources/xerces-c-src_2_8_0.tar.gz
# tar xvzf xerces-c-src_2_8_0.tar.gz
# cd xerces-c-src_2_8_0/src/xercesc/
# export XERCESCROOT=/usr/local/lib/xerces-c-src_2_8_0
# ./runConfigure -p linux -c gcc -x g++
# make
# make install

ここまでやったところで、どうしても common library の tar ボールが展開できない。
Windows のツールで無理やり展開して見るとどうやら Eclipse プラグインのソースコード?のようなものが。
早速サポートの方に連絡したところ、ファイルに不備があったとのことで、すぐに修正版をアップしていただけました。

以下続き。

5. RichContext Common Library インストール

$ tar xvzf richcontext-common-library-1_01.tgz
$ cd richcontext-common-library-1.0.1
$ ./configure
$ make
$ su
# make install

6. RichContext Similarity Engine Library インストール

$ tar xvzf richcontext-similarity-engine-library-1_01.tgz
$ cd richcontext-similarity-engine-library-1.0.1
$ ./configure
$ make

そしてここでまたハマる。
make が通らない。。。

make  all-am
make[1]: ディレクトリ
`/usr/local/src/richcontext-similarity-engine-library-1.0.1' に入ります
if /bin/sh ./libtool --mode=compile --tag=CXX g++ -DHAVE_CONFIG_H -I.
-I. -I.    -I/usr/include -I./include -g -O2 -MT
librcsimilarityengine_la-Cache.lo -MD -MP -MF
".deps/librcsimilarityengine_la-Cache.Tpo" -c -o
librcsimilarityengine_la-Cache.lo `test -f 'src/Cache.cpp' || echo
'./'`src/Cache.cpp; \
       then mv -f ".deps/librcsimilarityengine_la-Cache.Tpo"
".deps/librcsimilarityengine_la-Cache.Plo"; else rm -f
".deps/librcsimilarityengine_la-Cache.Tpo"; exit 1; fi
mkdir .libs
 g++ -DHAVE_CONFIG_H -I. -I. -I. -I/usr/include -I./include -g -O2 -MT
librcsimilarityengine_la-Cache.lo -MD -MP -MF
.deps/librcsimilarityengine_la-Cache.Tpo -c src/Cache.cpp  -fPIC -DPIC
-o .libs/librcsimilarityengine_la-Cache.o
./include/richcontext/VectorItem.h:140: error: extra qualification
'rc::VectorItem::' on member 'getDistance'
make[1]: *** [librcsimilarityengine_la-Cache.lo] エラー 1
make[1]: ディレクトリ
`/usr/local/src/richcontext-similarity-engine-library-1.0.1' から出ます
make: *** [all] エラー 2

これは VectorItem.h ファイルに何かあるのでは?と思い、またサポートの方へ連絡。どうやら gcc のバージョンの違いによるものだそうで、修正版のヘッダーファイルをソッコーで送付していただきました。

# ライセンス違反になるといけないのでとりあえずそのファイルは公開しませんが、diff った結果だけ公開。
# まずかったらご指摘ください。

$ diff VectorItem.h VectorItem.h.org
140c140
< static float getDistance(const std::vector&cVector);
---
> static float rc::VectorItem::getDistance(const std::vector&cVector);

VectorItem.h ファイルを置き換えたところ無事 make がとおった。あとは make install するだけ。

あと、PostgreSQL にテーブルを作らなければいけないんだけど、インストールしても実行ファイルができるわけでもなく、どこから手をつけていいかわからず状態なので、とりあえずここまで。

チュートリアルとサンプルコードが後日公開されるそうなので、それまで待つことにします。

Share on Facebook0Share on Google+0Tweet about this on TwitterBuffer this pageEmail this to someone