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 件のコメント:
コメントを投稿