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)に採用するかも。楽しみすぐる!!!