LoginSignup
0
2

More than 5 years have passed since last update.

CentOS7でCouchDB2.0のインストールを試してみたメモ

Last updated at Posted at 2017-08-03

tl;dr

CentOS7.3にインストールしてみたメモ。
とりあえず、実用する人はまだ1.6使ったほうがよさそう。

本家のメインストリームが2.0になっているっぽいのに、いまのところ2.0まだソースからコンパイルしないと行けない様子。しかもdaemon化にも対応してないっぽい。試したい方だけ以下参考まで。

インストール

2.0の動作をまだよく理解していないので、今回はSELinuxは無効にしています。

$ getenforce
Permissive

依存関係

本家に乗っているものだけではerlangのライブラリ等が不足しているのでコンパイルできません。
とりあえず以下で成功しました。

$ sudo yum install autoconf autoconf-archive automake gcc-c++ curl-devel erlang-asn1 erlang-erts erlang-eunit erlang-os_mon erlang-xmerl erlang-erl_interface erlang-reltool help2man js-devel-1.8.5 libicu-devel libtool perl-Test-Harness

ソースダウンロードしてインストール

ソースのダウンロード元は、本家から好みのミラーを選んでください。

コンパイルはmake releaseでいけますが、インストールはmake installが2.0では未対応みたいなので、自分でコピーしろってコメントされています。(のちほどやります)

$ curl -O http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/couchdb/source/2.0.0/apache-couchdb-2.0.0.tar.gz
$ tar -xvf apache-couchdb-2.0.0.tar.gz
$ cd apache-couchdb-2.0.0
$ ./configure
$ make release
$ sudo cp -r rel/couchdb /usr/local/lib

専用ユーザーの追加

本家では、システムユーザーでログインとか、ホームディレクトリ無効にしたユーザーで、ホームディレクトリにコピーとか意図がよくわからなかった。普通にcouchdbユーザー作って無難に/optにでもインストールしたほうがよさそう。

さっきmakeしたapache-couchdb-2.0.0ディレクトリでそのまま作業します。

ユーザーの追加

$ sudo useradd -r -s /sbin/nologin -c "CouchDB Administrator" couchdb
$ sudo passwd couchdb

ファイルのコピー

$ sudo cp -r rel/couchdb /opt
$ cd /opt/couchdb
$ sudo chmod 644 etc/*
$ sudo chown -R couchdb:couchdb .

起動

バイナリを起動するだけ

$ sudo /opt/couchdb/bin/couchdb

systemd

一応systemdで使えるようにしてみました。

serviceファイルを作成します。

$ sudo vi /etc/systemd/system/couchdb.service
/etc/systemd/system/couchdb.service
[Unit]
Description = Apache CouchDB 2.0

[Service]
ExecStart = /opt/couchdb/bin/couchdb
ExecStop = /bin/kill ${MAINPID}
Restart = always
Type = simple
User = couchdb
Group = couchdb

[Install]
WantedBy = multi-user.target

追加したサービスをsystemctlで有効にする

$ sudo systemctl daemon-reload

起動

$ sudo systemctl start couchdb

停止

$ sudo systemctl stop couchdb

自動起動を有効に

$ sudo systemctl enable couchdb

firewall

外からアクセスするため、TCPポート5984を開けておきます。

$ sudo firewall-cmd --add-port=5984/tcp --permanent
$ sudo firewall-cmd --reload

ちなみに5986 はローカル用、4369はEPMDポート(Erlangでクラスタやるときなどに使われる)

CouchDB

ドキュメント指向DBってKVS以上列指向未満な使い勝手で好み。MongoDBだとそのままyumでインストールできて便利なんだけど、RDB脳に汚染されて複雑性を持ち込む悪癖がでるという勝手な偏見を持っている自分はあえてCouchDBとか使っています。

そのうちyumとかaptとかsystemd対応してくれなかったら、2.0はつかわないかも。環境再現面倒なのはキライです。

思ったほど普及もしてなさそうだし日本語ドキュメント少なくて面倒なので、商用だったら素直にCludantとかCouchBase使えば良いと思います^^;ちなみにMobile用だとTouchDBっていうもあるようです。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2