如何在Debian 10 Buster上安装CouchDB
时间:2020-02-23 14:32:09 来源:igfitidea点击:
Apache CouchDB是一个用Erlang编写的面向开源文档的NoSQL数据库,同时考虑了并发性和容错性。它的开发和发布由Apache Software Foundation负责。 CouchDB使用JSON表示存储在数据库中的数据。 CouchDB复制使我们可以同步两个或者多个CouchDB数据库。 CouchDB RESTful HTTP/JSON API使我们可以读取,编辑,删除和创建数据库文档。在本教程中,我们将说明如何在Debian 10 Buster上安装CouchDB。
我们需要以具有sudo特权的用户身份对服务器进行SSH访问。确认之后,请通过终端访问服务器,然后执行以下共享的后续步骤。
更新系统
首先将所有系统软件包更新为服务器上可下载的最新版本。
sudo apt update sudo apt -y upgrade
安装依赖项
安装所有必需的依赖项,以在Debian 10 Buster上构建CouchDB。
sudo apt update sudo apt-get --no-install-recommends -y install build-essential pkg-config erlang libicu-dev libmozjs185-dev libcurl4-openssl-dev
为CouchDB创建CouchDB用户
创建一个couchdb
系统用户以运行CouchDB服务。
sudo adduser --system \ --shell /bin/bash \ --group --gecos \ "CouchDB Administrator" couchdb
第4步:在Debian 10 Buster上构建CouchDB
下载CouchDB数据库存档的最新稳定版本。
curl -s https://api.github.com/repos/apache/couchdb/releases/latest \ | grep browser_download_url \ | cut -d '"' -f 4 \ | wget -qi
运行以下命令以在Debian 10(Buster)上构建CouchDB。
$tar xvf apache-couchdb-*.tar.gz $cd apache-couchdb-*/ $./configure
要构建CouchDB,我们应该运行:
$make release
如果make给我们带来任何问题,请尝试gmake。如果一切成功,我们应该看到以下消息:
Installing CouchDB into rel/couchdb/... ==> rel (generate) WARN: 'generate' command does not apply to directory /root/apache-couchdb-2.3.1 ... done You can now copy the rel/couchdb directory anywhere on your system. Start CouchDB with ./bin/couchdb from within that directory.
要将CouchDB安装到系统中,请将rel/couchdb复制到所需的安装位置。
sudo cp -r rel/couchdb /home/couchdb sudo chown -R couchdb:couchdb /home/couchdb/
列出目录内容:
$ls -1 /home/couchdb/couchdb/ bin erts-10.2.4 etc lib LICENSE releases share var
通过运行以下命令更改CouchDB目录的权限:
find /home/couchdb -type d -exec chmod 0770 {} \; chmod 0644 /home/couchdb/couchdb/etc/*
配置CouchDB Systemd服务
我们需要创建一个coucdb systemd服务来管理应用程序状态。
sudo tee /etc/systemd/system/couchdb.service<<EOF [Unit] Description=Couchdb service After=network.target [Service] Type=simple User=couchdb ExecStart=/home/couchdb/couchdb/bin/couchdb -o /dev/stdout -e /dev/stderr Restart=always [Install] WantedBy=multi-user.target EOF
重新加载systemd守护程序。
sudo systemctl daemon-reload sudo systemctl start couchdb.service sudo systemctl enable couchdb.service
确认服务状态
$systemctl status couchdb.service ● couchdb.service - Couchdb service Loaded: loaded (/etc/systemd/system/couchdb.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2019-08-19 20:53:00 UTC; 1min 10s ago Main PID: 15764 (beam.smp) Tasks: 39 (limit: 4701) Memory: 37.5M CGroup: /system.slice/couchdb.service ├─15764 /home/couchdb/couchdb/bin/../erts-10.2.4/bin/beam.smp -K true -A 16 -Bd -- -root /home/couchdb/couchdb/bin/.. -progname couchdb -- -home /home/couchdb -- -boot /home/couchdb/couchdb/bin/../relea ├─15792 erl_child_setup 1024 ├─15809 sh -s disksup ├─15811 /home/couchdb/couchdb/bin/../lib/os_mon-2.4.7/priv/bin/memsup └─15812 /home/couchdb/couchdb/bin/../lib/os_mon-2.4.7/priv/bin/cpu_sup Aug 19 20:53:21 localhost couchdb[15764]: [notice] 2019-08-19T20:53:21.761564Z theitroad@localhost <0.356.0> -
确保CouchDB仍在运行,然后执行以下操作:
$curl http://127.0.0.1:5984/ {"couchdb":"Welcome","version":"2.3.1","git_sha":"c298091a4","uuid":"cf6f7c87e049c287e1459a53c8415c39","features":["pluggable-storage-engines","scheduler"],"vendor":{"name":"The Apache Software Foundation"}}
这会向新安装的CouchDB实例发出GET请求。
测试数据库的创建:
$curl -X PUT http://127.0.0.1:5984/testdb {"ok":true} $ curl -X PUT http://127.0.0.1:5984/testdb1 {"ok":true} $ curl -X PUT http://127.0.0.1:5984/testdb2 {"ok":true} $curl -X GET http://127.0.0.1:5984/_all_dbs ["testdb","testdb1","testdb2"]
我们可以在以下位置访问CouchDB基于Web的界面Fauxton:
http://127.0.0.1:5984/_utils/