Empty

2013年4月から社会人になりました。

「入門ソーシャルデータ」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
$ 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の最新バージョンを入れておこうとあったので、普通にソースからインストール.

$ 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のライブラリSpiderMonkeyCouchDBでは使用しているので、そちらを導入する.

$ 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

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ポートへのアクセスを許可.

$ 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に通す設定。

VirtualBoxGUIで[ネットワークアダプタ]->[ポートフォワーディング]

f:id:Kshi_Kshi:20120131002138p:plain
こんな感じで設定した.

    • CouchDB側の設定-外部からのアクセスを許可
$ sudo vim /usr/local/etc/couchdb/local.ini
; 以下を指定する.
bind_address = 0.0.0.0

これで、ホスト元から、http://localhost:5984 でアクセスできる。
これにて、CouchDBの導入終了
CouchDBのWEBベース管理インターフェース Futonhttp://localhost:5984/_utils/ から操作することができる。


その他、3章で必要なライブラリの導入方法

couchdb-python

PythonCouchDBを操作するためのライブラリ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

日付関連の処理を楽にするため。

(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 ではパッケージが見つからないと怒られたので、ソースから入れた。


prettytable

CUIで表示するときに、綺麗に整形された表を出力するためのもの.

$ sudo easy_install prettytable
Lucene関係

あとで書く


threadpool

3.3あたりで例3-14で使うスクリプトで用いる.

$ sudo easy_install threadpool