CouchDB を Windows XPで使う方法 (colinux 上で動かすと楽かも)
Windows XPで CouchDB を使う必要が生じたので、そのとき調査したことのメモ。
結論としては、colinuxをインストールして、そこで ゲストOSとしてUbuntu9.04を使いその上で CouchDB を動かすことに。
簡単にWindowsで導入できるらしい!?
このエントリーを書いてから上記ページに気づいたのだが...orz
ただし、単にCouchDBを利用するだけでなく、 開発もする場合はコマンドラインでcurl使ってのテストなど Windows + Cygwin より colinux + Ubuntu があった方が 何かと便利なので、colinux + Ubuntu + CouchDB という組み合わせも 捨てたものではないはずだ。(ということにする。)
インストール手順
- 必要な環境
- colinuxをインストール
- colinuxのUbuntu9.04 のイメージを使用して colinux を起動
- 容量が1Gでは足りなくなるため、2Gに増やしておく
- colinux.conf の設定と起動
- ネットワークの設定
- CouchDBをソースからインストール
- WindowsXPからCouchDBにアクセスできるように local.ini を設定
- CouchDBの起動と終了
- (おまけ)python-couchdb パッケージ
必要な環境
Cygwinが入っていた方が楽。 なくても何とかなると思いますが、 この説明ではCygwinがインストールされていることが前提になっています。
colinuxのインストール
colinux (+ Ubuntu 7.10 ) の WindowsXP への導入記録 を参考にしつつインストール。このエントリでは、Ubuntu7.10 になっているが 本日現在、Ubuntu 9.04 イメージ(Ubuntu-9.04-1gb.7z)が入手できるので これを使う。
1Gのイメージを2Gに拡張
http://blog.clouder.jp/archives/000973.html を参考にさせていただく。
- Windowsで、fsutil コマンドを使って空の 2G のイメージファイルを作成
- cobd2 等に割り当ててcolinuxを起動
- cobd0 の内容を dd コマンド等を駆使して cobd2 にコピー
- colinuxをshutdown
- cobd2 に割り当てていた新イメージファイルを cobd0 に割り当て
- colinuxを起動
という手順でOK. コピー作業は20分くらいかかります。
CouchDBをソースからインストール
もしCouchDB 0.8 でよければ apt-get install couchdb でOKです。 以下の長い説明は不要です。
試していませんが、Ubuntu9.04から9.10 にアップグレードして それから apt でインストールすれば CouchDB 0.10 が使えたと思います。
以下の話は全部 colinux上での話です。
Ubuntu 9.04 には最新の CouchDB 0.10 が入っていなかったので、 ソースから入れます。
依存するパッケージのインストールと configure,make,make install
IBMのDWの記事は、Ubuntu 8.04 について説明していますが、 ほとんどそのまま Ubuntu 9.04 でも通用しました。
ただし、事前に入れておくべきパッケージは以下も必要です。
$ sudo apt-get install libcurl4-gnutls-dev
あとは普通に configure,make,make install でOK.
今回 UNIXユーザ foo の ~/couchdb にインストールしたかったので
以下のようにしました。
$ ./configure --prefix=/home/foo/couchdb
$ make
$ make install
インストール後の設定
var のアクセス権を変更
データベースの内容などが /home/foo/couchdb/var に配置されるので、 このディレクトリのアクセス権を設定しておきます。
$ chmod 777 -R /home/foo/couchdb/var
セキュリティは考慮していませんのであしからず。
WindowsXPから colinux 上で動いている couchdb が読めるようにする
デフォルト設定では、ローカルマシンからしかアクセスできません。 これは不便なので、WindowsXPからアクセスできるように /home/foo/couchdb/etc/couchdb/local.ini を変更します。
;bind_address = 127.0.0.1
bind_address = 192.168.0.2
セキュリティは考慮していませんのであしからず。
起動と終了
起動
$ su
# /home/foo/couchdb/etc/init.d/couchdb start
起動できたら WindowsXPでブラウザを起動して、
http://192.168.0.2:5984/_utils
にアクセスして作動確認します。
終了
$ su
# /home/foo/couchdb/etc/init.d/couchdb stop
(おまけ) python-couchdbパッケージ
couchdb-python ... Python library for working with CouchDB. を使えばデータベースのコピーが簡単に行えます。
Ubuntuでは、 python-couchdb パッケージ を apt でインストールすればOK. そうすれば、 couchdb-dump, couchdb-load コマンドが 使えるようになりデータベースのバックアップやコピーが簡単にでき便利です。
$ sudo apt-get install python-couchdb
でインストールできます。
たとえば、hogehogeというデータベースがあった場合にこれを hogehoge2 へコピーするには、以下のようにします。
$ couchdb-dump http://localhost:5984/hogehoge > dump.hogehoge
$ couchdb-load http://localhost:5984/hogehoge2 < dump.hogehoge
load するときは、hogehoge2 という空のデータベースが存在している必要があります。
これは、CouchDB標準に備わっているレプリケーションの機能を使えば済む話ですが、 別のマシンにデータベースをコピーしたい場合で、 そのマシンがネットワーク経由で接続できない場合には、 この機能が重宝します。