2014年6月28日土曜日

Kyototycoonを久しぶりにセットアップしてみる

自宅のLinux(Ubuntu)をついに14.04(trusty)にアップしたのを機に、ちょっと久しぶりにKyototycoonをセットアップしてみました。(kyotocabinet-1.2.76 & kyototycoon-0.9.56)
Kyotoって何?という説明は、高速なkey-value型のデータベースだということだけで済ませます。

さてまず上記最新バージョンをDLしてきて、まずはkyotocabinetからです。おきまりの以下のコマンドです。

$ ./configure
$ make

と行こうと思ったんですが、忘れてましたzlib.hがありません。4年前に初めてセットアップしたときはzlibをソースからビルドしましたが、今回はUbuntuのapt-getですませます。

$ sudo apt-get zlib1g-dev

今はubuntu packagesのHPで必要なファイルが入っているpackageを教えてくれますので簡単です。続けて確認です。

$ make check

結構時間がかかりました。(10分くらい?)無事終了してインストールします。

$ sudo make install

/usr/local以下にインストールされました。
続けて、kyototycoonのセットアップに移ります。

$ ./configure
$ make

としたんですが、なんかgetpid()がscopeに見当たらないとエラーがでてきました。ググってみると、どうも"ktdbext.h"に、#include <unistd.h>を追加してやればいいそうです。
おそらく開発してる人は色んなツールを入れていて、知らないうちにデフォルトで入っちゃってるんでしょうね。OSSビルドしてるとたまに、この基本のincludeがないエラーがでてきます。(gccの問題だという報告もありました。includeのネストで何か問題がでるバージョンがあるんですかね。)

さてkyototycoonのビルド、checkも終わり、テストです。試しに以下のコマンドをコンソールから実行します。

$ ktserver kyoto.kch

kyoto.kchというファイルを作成してデータベースを起動するんですが、ここでまたエラーが・・・ libkyototycoon.so.2が見つからないといってきました。/usr/local/libにあるんですが、なぜかライブラリパスの設定がうまくいっていないようです。ということで以下を行います。

$ sudo vi /etc/ld.so.conf/kyoto.conf

ここに、/usr/local/libを入力します。/etc/ld.so.confにも/usr/local/libはセットしてあるんですが、なぜkyotoだとこの設定ファイルを追加しないといけないのかよくわかりませんが。

$ sudo ldconfig

これで設定を有効にしてやればサーバーは無事起動します。
さて今度は別のコンソールでデータの入力、確認をしてみます。

$ ktremotemgr set japan tokyo
$ ktremotemgr set korea seoul
$ ktremotemgr set china beijing

$ ktremotemgr inform

count: 3

size: 6297824

$ ktremotemgr get japan
tokyo

うまくうごきますね。

0 件のコメント:

コメントを投稿