FreeBSD 6.x および 7.x への CouchDB のインストール
ports からのインストール
cd /usr/ports/databases/couchdb make install clean
これで ports コレクションから CouchDB 0.9.0 がインストールされます。
インストール後にすること
couchdb ユーザーを作成する必要があります。
私は pw コマンドを使ってグループ "couchdb" にユーザー "couchdb" を追加しました。
shell# pw user add couchdb shell# pw user mod couchdb -c 'CouchDB, time to relax' -s /usr/sbin/nologin -d /var/lib/couchdb shell# pw group add couchdb
作成したユーザーが /etc/passwd に追加され、次のようなエントリができているはずです。
shell# cat /etc/passwd |grep couchdb couchdb:*:1013:1013:Couchdb, time to relax:/var/lib/couchdb/:/usr/sbin/nologin
エントリの内容を変更するには、/etc/passwd を直接編集するのではなく、pw user mod ... または vipw を使用してください。couchdb ユーザーにはシェルを設定せず、必ず /usr/sbin/nologin を指定してください。2番目のフィールドの '*' は、ユーザーがパスワード認証でログインできないことを示しています。詳細については、man 5 passwd で確認してください。
起動スクリプト
FreeBSD では次のようにして CouchDB を起動します。
shell# /usr/local/etc/rc.d/couchdb
このスクリプトには、start、stop、status、rcvar などのオプションがあります。
現在、port には起動スクリプトは含まれていませんが、メンテナが進めている作業の現時点での成果は
github からダウンロードできます。
この起動スクリプトでは現在、/etc/rc.conf または /etc/rc.conf.local で以下のオプションを指定できます。
couchdb_enable="NO" couchdb_enablelogs="YES" couchdb_user="couchdb"
(規定値を掲載。)
起動スクリプトでは、以下の設定ファイルの設定も読み込みます。
/usr/local/etc/couchdb/default.ini /usr/local/etc/couchdb/local.ini
ログファイルは次のように設定されています。
/var/log/couchdb/couch.log
そのため私は、次のようにしました。
shell# chown couchdb:couchdb /var/log/couchdb
このコマンドで、couchdb のプロセスがログファイルのあるディレクトリのオーナーになり、このディレクトリにある couch.log ファイルにログを書き込むことができるようになります。その他のディレクトリのオーナー設定は、"root:wheel" または "root:network" です。私は場所が "/usr/local/var.." になると思っていたのですが…。
次のようにして CouchDB を起動します。
shell# /usr/local/etc/rc.d/couchdb start
これで "
http://localhost:5984" にアクセスできるようになり、次のような JSON ドキュメントが表示されるはずです。
{"couchdb":"Welcome","version":"0.9.0"}
次に、"
http://localhost:5984/_utils/" にアクセスすれば、Web インタフェースの "Futon" が表示されます。
私はここで "db1" というデータベースを作成しようとしたのですが、エラーになりました。この問題は次のようにすることで解決しました。
shell# chown couchdb:couchdb /var/lib/couchdb
これで Futon から OK が返ってきて、データファイル "/var/lib/couchdb/db1.couch" が作成されていました。
ソースからのインストール
git clone git://github.com/halorgium/couchdb.git で取得したソースからビルドすると、"Syntax error: end of file unexpected" というエラーが発生することがあります。ソースからビルドするときは、make ではなく gmake を使う必要があります。
現時点での TODO
/var/lib/couchdb/ を /var/db/couchdb/ に変更
/var/log/couchdb/ の作成
port インストールでの couchdb ユーザーの作成
わからないことがあったら
github リポジトリからチェックアウトするか、または TillKlampaeckel 宛にメールしてください。