Kyoto Tycoonインストールの備忘。
VMの準備
- Vagrant box の初期化
vagrant init chef/centos-7.0
- private network の有効化
こことだいたい同じ。(最後の「ホストPCからの接続確認」で指定しているが、IPは192.168.33.12にした。)
VM起動してログインし、以下はVM上での操作。
Kyoto Cabinet のインストール
- 依存ライブラリのインストール
> sudo yum install zlib-devel
> sudo yum install gcc gcc-c++
- Kyoto Cabinet ダウンロード・インストール
> wget http://fallabs.com/kyotocabinet/pkg/kyotocabinet-1.2.76.tar.gz
> tar zxf kyotocabinet-1.2.76.tar.gz
> ./configure
> make
> sudo make install
Kyoto Tycoon のインストール
> wget http://fallabs.com/kyototycoon/pkg/kyototycoon-0.9.56.tar.gz
> tar zxf kyototycoon-0.9.56.tar.gz
> cd kyototycoon-0.9.56
> ./configure
> make
ktdbext.h:274:29: エラー: ‘getpid’ was not declared in this scope
uint32_t pid = getpid() & kc::UINT16MAX;
^
ktdbext.h:274:29: 備考: suggested alternative:
In file included from ./ktcommon.h:20:0,
from ktdbext.h:19,
from ktdbext.cc:16:
/usr/local/include/kcutil.h:879:9: 備考: ‘kyotocabinet::getpid’
int64_t getpid();
^
make: *** [ktdbext.o] エラー 1
いくつか警告が出つつも進んでいたが、エラーが出てしまった。
どうも ktdbext.h
を手で編集する必要があるようだ。
(しかし、これ Travis CI 上でテスト用のKyoto Tycoonを準備する際には不要だった。
実行環境に関係しているのかな?)
> vi ktdbext.h
(`#include <unistd.h>` を追加)
> make
> sudo make install
- 起動
> sudo lab/ktservctl start
- ホストPCから接続確認
> curl -LI http://192.168.33.11:1978/rpc/void -o /dev/null -w '%{http_code}\n' -s
200
よさそう。