Ubuntu 10.04にCouchDB v1.0.0をインストールする
前回よりも少し詳しく書きます。Ubuntu 10.04にcouchdbを自分でコンパイルとインストールをしたい場合は次のような課題があります。
- libmozjs-devをapt-getできない
- couchdb v0.10.0がすでにインストールされている
後者の課題は9.10あたりからUbuntu linuxではcouchdbがデフォルトでインストールされていることによります。Ubuntu Oneというファイル共有サービスを実現するために組み込まれています。今回はcouchdbというユーザーの競合を回避するためにv1.0.0向けとして"couchuser"というユーザーを新たに作成してみました。
$apt-get update $sudo apt-get install build-essential #libmozjs-devの代わりにxulrunner-devをインストールします。 $sudo apt-get install erlang libicu-dev libcurl4-openssl-dev xulrunner-dev $sudo apt-get install curl #動作確認用に入手 #prefixオプションがなければ、/usr/local/bin配下にv1.0.0のcouchdbコマンドが入ります。 #あとはjsライブラリをデフォルトからxulrunner-devel-x.x.x.xに変更しておきます。 $./configure --with-js-lib=/usr/lib/xulrunner-devel-1.9.2.8/lib \ --with-js-include=/usr/lib/xulrunner-devel-1.9.2.8/include $sudo make $sudo make install $sudo adduser --system --home /usr/local/var/lib/couchdb \ --no-create-home -shell /bin/bash --group --gecos \ "CouchDB Administrator" couchuser $sudo chown -R couchuser:couchuser /usr/local/etc/couchdb $sudo chown -R couchuser:couchuser /usr/local/var/lib/couchdb/ $sudo chown -R couchuser:couchuser /usr/local/var/log/couchdb/ $sudo chown -R couchuser:couchuser /usr/local/var/run/couchdb/ $sudo chmod 0770 /usr/local/var/run/couchdb/ $sudo chmod 0770 /usr/local/var/lib/couchdb/ $sudo chmod 0770 /usr/local/var/log/couchdb/ $sudo chmod 0770 /usr/local/etc/couchdb
次に、/usr/local/etc/default/couchdb 内の"COUCHDB_USER"をcouchdbからcouchuserに置き換えます。
# Sourced by init script for configuration.
COUCHDB_USER=couchuser # 変更します。
COUCHDB_STDOUT_FILE=/dev/null
COUCHDB_STDERR_FILE=/dev/null
COUCHDB_RESPAWN_TIMEOUT=5
COUCHDB_OPTIONS=
無事動くか、試してみましょう。
$sudo -i -u couchuser couchdb $curl http://127.0.0.1:5984 {"couchdb":"Welcome","version":"1.0.0"} #これが返ってくればOK 1.0.0でしょうか?
couchdbをバックグラウンドで実行したい場合は-bオプションを付けます。または、/usr/local/etc/init.d/couchdb startを使います。
$sudo -i -u couchuser couchdb -b $sudo /usr/local/etc/init.d/couchdb start
起動したら停止もしたいですね。以下のようにすればOKです。
$sudo -i -u couchuser couchdb -d $sudo /usr/local/etc/init.d/couchdb stop
他のマシンからcouchdbにアクセスしたいときなど、IPアドレスが127.0.0.1やlocalhostとは違うものにしたい時があります。その場合はlocal.iniのbind_addressを変更し、再起動すればOKです。
#/usr/local/etc/couchdb/local.iniの中
10 [httpd]
11 ;port = 5984
12 ;bind_address = 127.0.0.1 # 左端の”;”を外して、任意のアドレスに変更
またはcurlでPUTするやり方もあります。この方法はcouchdbが起動していないと使えません。
$curl -X PUT http://現在のアドレス:5984/_config/httpd/bind_address -d'"新しいアドレス"'
ここまでくれば、curlでガンガンHTTPメソッドを投げるもよし、"http://127.0.0.1:5984/_utils"にWebブラウザでアクセスしてFutonユーティリティにうっとりするもよし、プログラムを書くもよしです。Be relaxed !!