「入門ソーシャルデータ」3章環境設定 - CouchDBの導入(Scientific Linux 6.1)
概要
技術書「入門ソーシャルデータ」に関する勉強会をやっているのだが、3章での環境設定が少しやること多めだったので、備忘記録としてエントリーしておく。
- 検証環境
- ホストOS Windows上のソフトウェアVirtualBox上で動いているScientific Linux(x86_64)
yum で CouchDB のインストールに必要なパッケージを入れる.
追加レポジトリを指定せずに、Defaultの状態で普通にyumすると、
... No package erlang available. No package js-devel available. ...
と必要なSoftware,libraryを入れられないので、
epelレポジトリを使って、yum install
- epel レポジトリを使用できるようにする
$ sudo yum install epel-release $ sudo vi /etc/yum.repos.d/epel.repo ... [epel] ... # enable=1 => 0 に変更 enabled=0 ...
指定時にしかepelレポジトリを使わないように。ライブラリの依存関係を損なわないため。
- 必要なパッケージを導入する.
$ sudo yum -y --enablerepo=epel install libicu-devel openssl-devel curl-devel make gcc erlang js-devel libtool which
Erlang系のパッケージがもりだくさんだった。気がする。
cURL
次はcURLの最新バージョンを入れておこうとあったので、普通にソースからインストール.
- download page: http://curl.haxx.se/download.html
$ wget http://curl.haxx.se/download/curl-7.24.0.tar.bz2 $ tar xvfj curl-7.24.0.tar.bz2 $ cd curl-7.24.0 $ make $ sudo make install $ curl -V curl 7.24.0 (x86_64-unknown-linux-gnu) libcurl/7.19.7 NSS/3.12.9.0 zlib/1.2.3 libidn/1.18 libssh2/1.2.2 Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
確認OK
SpiderMonkey
次は、jsのライブラリSpiderMonkeyをCouchDBでは使用しているので、そちらを導入する.
$ wget http://ftp.mozilla.org/pub/mozilla.org/js/js185-1.0.0.tar.gz $ tar xvfz js185-1.0.0.tar.gz $ cd js-1.8.5/js/src $ autoconf $ ./configure $ make $ sudo make install
- 参考
- Official Page: http://www.mozilla-japan.org/js/spidermonkey/
- Official Wiki: http://wiki.apache.org/couchdb/Installing_SpiderMonkey
- Getting SpiderMonkey source codea: https://developer.mozilla.org/En/SpiderMonkey/Getting_SpiderMonkey_source_code#Getting_the_latest_SpiderMonkey_source_code
- Build Documentation: https://developer.mozilla.org/en/Building_only_SpiderMonkey
- Source: http://ftp.mozilla.org/pub/mozilla.org/js/
CouchDB
これでCouchDBをいれるための準備が整ったので、導入していく.
導入
$ wget http://ftp.jaist.ac.jp/pub/apache//couchdb/1.1.1/apache-couchdb-1.1.1.tar.gz $ tar xvfz apache-couchdb-1.1.1.tar.gz $ cd apache-couchdb-1.1.1 $ ./configure --prefix=/usr/local --enable-js-trunk --with-erlang=/usr/lib64/erlang/usr/include $ make $ sudo make install
インストール完了.
設定
- 権限や、/sbin/service で使えるように設定.
$ sudo adduser -r --home /usr/local/var/lib/couchdb -M --shell /bin/bash --comment "CouchDB Administrator" couchdb $ sudo chown -R couchdb: /usr/local/var/lib/couchdb /usr/local/var/log/couchdb $ sudo ln -s /usr/local/etc/rc.d/couchdb /etc/rc.d/init.d/couchdb $ sudo /sbin/service couchdb start # CouchDB起動 $ curl localhost:5984 {"couchdb":"Welcome","version":"1.1.1"}
OK.
- CouchDBを自動起動させたい場合
$ sudo /sbin/chkconfig couchdb on
- 他のPCからアクセスしたいとき、ポート解放
5984ポートへのアクセスを許可.
-
- iptablesの設定
$ sudo vim /etc/sysconfig/iptables # 以下をルールに追加 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5984 -j ACCEPT
-
- 検証環境ではVirtualBox上でScientific Linuxを動かしているので、ホストのIPアドレス:5984ポートへのアクセスをScientific Linuxに通す設定。
VirtualBoxのGUIで[ネットワークアダプタ]->[ポートフォワーディング]
こんな感じで設定した.
-
- CouchDB側の設定-外部からのアクセスを許可
$ sudo vim /usr/local/etc/couchdb/local.ini ; 以下を指定する. bind_address = 0.0.0.0
これで、ホスト元から、http://localhost:5984 でアクセスできる。
これにて、CouchDBの導入終了
CouchDBのWEBベース管理インターフェース Futon は http://localhost:5984/_utils/ から操作することができる。
その他、3章で必要なライブラリの導入方法
couchdb-python
PythonでCouchDBを操作するためのライブラリcouchdb-pythonを入れる。
- project_page: http://code.google.com/p/couchdb-python/
- easy_install or pip で導入可能.
- eggファイルを落としてきて、easy_install
$ sudo easy_install CouchDB-0.8-py2.6.egg
-
- pipにて楽々インストール
$ pip install couchdb # ちなみに pip のインストールは $ sudo easy_install pip
- CouchDB側の設定
Python側で
$ sudo vim /usr/local/etc/couchdb/local.ini ; ... 以下を追記する ... [query_servers] python = /usr/bin/couchpy
couchpyの場所は $ which couchpy で調べられる.
再起動後に設定は反映される。
$ sudo /sbin/service couchdb restart
python-dateutil
日付関連の処理を楽にするため。
- download: http://labix.org/python-dateutil
(Python < 3.0 の場合)
$ wget http://labix.org/download/python-dateutil/python-dateutil-1.5.tar.gz $ tar xvfz python-dateutil-1.5.tar.gz $ cd python-dateutil-1.5 $ sudo python setup.py install
なぜか、$ easy_install dateutil ではパッケージが見つからないと怒られたので、ソースから入れた。
Lucene関係
あとで書く
threadpool
3.3あたりで例3-14で使うスクリプトで用いる.
$ sudo easy_install threadpool