portsからCouchDBをインストールした
以前から気になっていたCouchDBを、FreeBSDサーバにportsからインストールしてみました。その作業メモです。
参考にしたリソース
作業にあたっては下記のリソースを参考にしました。いやー、ありがたいねー。
- Installing_on_Fedora7 - Couchdb Wiki(本家のFedore Core 7用インストールマニュアル)
- Web 時代の非リレーショナルデータベース: 第 1 回 Apache CouchDB の概要とインストール
- http://blogs.ricollab.jp/webtech/2008/06/couchdb/(id:yohei さん)
portinstall → 失敗
いつものように
# cd /usr/ports # portinstall databases/couchdb
したら、java/diablo-jdk15 がignoreされてしまいました。
** Listing the failed packages (-:ignored / *:skipped / !:failed) - java/diablo-jdk15 * lang/erlang * databases/couchdb
ライセンスの関係で、java/diablo-jdk15 は手動でのファイル配置が必要とのことです。
** Port marked as IGNORE: java/diablo-jdk15: : Because of licensing restrictions, you must fetch the distribution manually. Please access http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd5-i386-1.5.0_07-b01.tar.bz2 with a web browser and "Accept" the End User License Agreement for "Caffe Diablo 1.5.0". Please place the downloaded diablo-caffe-freebsd5-i386-1.5.0_07-b01.tar.bz2 in /var/tmp/ports/distfiles. Please open http://java.sun.com/javase/downloads/index.jsp in a web browser and follow the "Download" link for "JDK US DST Timezone Update Tool - 1_3_5" to obtain the time zone update file, tzupdater-1_3_5-2008b.zip.
java/diablo-jdk15 に必要なファイルを配置
- まず diablo-caffe-freebsd5-i386-1.5.0_07-b01.tar.bz をダウンロード、/var/tmp/ports/distfiles に置きました
- 次に http://java.sun.com/javase/downloads/index.jsp にアクセス、Sun Online Account に登録し、(名称が微妙に違うので気になったものの)「JDK DST Timezone Update Tool - 1.3.5」をダウンロードしました
- で、このzipをどうするのか分からなかったのですが、「コンピュータ日記(仮):FreeBSD 6.3 に Java (jdk-1.5) をインストールした時の手順」を信じて、同じ /var/tmp/ports/distfiles に置きました
portinstall → 成功
その状態で
# cd /usr/ports # portinstall databases/couchdb
すると、今度は成功しました。やったね!
couchdbユーザの作成
冒頭に挙げた本家のインストールマニュアルでは、専用ユーザを作っていたので、それに従うことにしました。
# adduser -d /var/lib/couchdb Username: couchdb (詳細はナイショ) # chown -R couchdb /var/lib/couchdb # chown -R couchdb /var/log/couchdb
設定ファイルは変更しなかった
設定ファイルは /usr/local/etc/couchdb/couch.ini にあります。中身は下記の通りでした(無駄な改行は省略)。
# cat /usr/local/etc/couchdb/couch.ini ; etc/couch.ini.tpl. Generated from couch.ini.tpl.in by configure. [Couch] ConsoleStartupMsg=CouchDB is starting. DbRootDir=/var/lib/couchdb LogFile=/var/log/couchdb/couch.log HttpConfigFile=/usr/local/etc/couchdb/couch_httpd.conf UtilDriverDir=/usr/local/lib/couchdb/erlang/lib/couch-0.7.0/priv/lib LogLevel=info [Couch Query Servers] text/javascript=/usr/local/bin/couchjs -f /usr/local/share/couchdb/server/main.js
HTTP用の設定ファイル /usr/local/etc/couchdb/couch_httpd.conf は下記の通りです。
# cat /usr/local/etc/couchdb/couch_httpd.conf # etc/couch_httpd.conf.tpl. Generated from couch_httpd.conf.tpl.in by configure. Port 8888 #BindAddress 127.0.0.1 ServerName localhost SocketType ip_comm Modules mod_couch mod_get mod_log ServerRoot /usr/local/etc/couchdb DocumentRoot /usr/local/share/couchdb/www ErrorLog /var/log/couchdb/http_error.log TransferLog /var/log/couchdb/http_access.log
特に変更の必要はなさそうなので、そのままにしました。
ようやく起動
/usr/local/etc/rc.d/couchdb にできていたシェルスクリプトで起動してみます。
# /usr/local/etc/rc.d/couchdb start Starting database server: couchdb
動いた!!
curlもインストール
チュートリアル的にはcurlでアクセスするのが定石みたいなので、ついでにインストールしてみました。
# cd /usr/ports # portinstall ftp/curl
データベースにアクセス
wktkしながらcurlコマンドを叩きます。
# curl -v http://localhost:8888/ * About to connect() to localhost port 8888 (#0) * Trying 127.0.0.1... connected * Connected to localhost (127.0.0.1) port 8888 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.18.0 (i386-portbld-freebsd5.4) libcurl/7.18.0 OpenSSL/0.9.7e zlib/1.2.1 > Host: localhost:8888 > Accept: */* > < HTTP/1.1 200 OK < Server: inets/develop < Date: Fri, 04 Jul 2008 12:25:22 GMT < Cache-Control: no-cache < Pragma: no-cache < Expires: Fri, 04 Jul 2008 12:25:22 GMT < Transfer-Encoding: chunked < Content-Type: text/plain;charset=utf-8 < {"couchdb": "Welcome", "version": "0.7.0"} * Connection #0 to host localhost left intact * Closing connection #0
おおっ! 何事もなくWelcomeされとる!!
ここからは…
すぐ使うわけでもないので放置(えー)。
いや実は、8月1日にIBM社主催のCouchDBセミナーがあるのです(於:渋谷)。そこで勉強してからいじろうかな、と。私はすでに参加申込済みです。みなさんはいかがですかー?
Apache CouchDB は、データベースを Web で実現する、RESTful API を備えたドキュメント指向 (Non-Relational) データベースであり、Erlang エンジン、MapReduce によるクエリなど多彩な先進テクノロジーを含んだ実装です。今回のセミナーでは、社内プロトタイプで試用した経験を元に、Apache CouchDB の概要から実装の詳細までを紹介します。
developerWorks Japan : 「連続セミナー: 渋谷テクニカルナイト」のご案内
いけそうだと判断したら、さっそくPinto(いま作ってるSBM)に採用するかも。楽しみすぐる!!!