1.1. 在类Unix系统上安装

警告

如果没有首先创建管理员用户,couchdb3.0+将无法运行。一定要 create an admin user 在开始CouchDB之前!

1.1.1. 使用apachecouchdb便利二进制软件包进行安装

如果您正在运行以下操作系统之一,安装CouchDB的最简单方法是使用方便的二进制软件包:

  • CentOS/RHEL 7公司
  • CentOS/RHEL 8
  • 扩展(debi9)
  • 德比安10(巴斯特)
  • Ubuntu 16.04(至年版)
  • Ubuntu 18.04(仿生)
  • Ubuntu 20.04(焦点)

这些RedHat风格的rpm包和Debian风格的deb包将在 /opt/couchdb 并确保CouchDB在系统启动时由适当的init子系统(SysV样式initd或systemd)运行。

Debian风格的deb包 also 将CouchDB预先配置为独立或集群节点,提示输入它将绑定到的地址,以及管理员用户的密码。对这些提示的响应可以使用标准预先设定种子 debconf 工具。更多详细信息请参见 README.Debian 文件。

对于缺少兼容的SpiderMonkey库的发行版,Apache CouchDB还提供了1.8.5版本的包。

1.1.1.1. 启用apachecouchdb包存储库

Debian或Ubuntu :运行以下命令::

sudo apt update && sudo apt install -y curl apt-transport-https gnupg
curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" \
    | sudo tee /etc/apt/sources.list.d/couchdb.list >/dev/null

RedHat或CentOS :运行以下命令::

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://couchdb.apache.org/repo/couchdb.repo

1.1.1.2. 安装apachecouchdb包

Debian或Ubuntu :运行以下命令::

sudo apt update
sudo apt install -y couchdb

Debian/Ubuntu installs from binaries can be pre-configured for single node or clustered installations. For clusters, multiple nodes will still need to be joined together and configured consistently across all machines; follow the Cluster Setup walkthrough to complete the process.

RedHat/CentOS :运行命令:

sudo yum install -y couchdb

一旦安装, create an admin user 如果你以前没做过的话,你就不能开始了。

现在可以启动服务了。

Your installation is not complete. Be sure to complete the Setup steps for a single node or clustered installation.

放松点! CouchDB已安装并正在运行。

1.1.1.3. 用于对CouchDB存储库进行签名的GPG密钥

截至2021.04.25, 存储库 这两种类型的受支持软件包的签名密钥为:

pub   rsa8192 2015-01-19 [SC]
      390EF70BB1EA12B2773962950EE62FB37A00258D
uid           The Apache Software Foundation (Package repository signing key) <root@apache.org>

截至2021.04.25, 套餐 签名密钥(仅用于 rpm 包)是::

pub   rsa4096 2017-07-28 [SC] [expires: 2022-07-27]
      2EC788AE3F239FA13E82D215CDE711289384AE37
uid           Joan Touzet (Apache Code Signing Key) <wohali@apache.org>

两者都可以从最流行的GPG密钥服务器获得。

1.1.2. 从源安装

本文的其余部分描述了直接从源代码安装CouchDB所需的步骤。

本指南以及安装.Unix官方tarball版本中的文档是安装信息的规范来源。然而,许多系统都有一些需要注意的问题。此外,随着发行版更新其归档文件,依赖关系经常发生变化。

1.1.3. 依赖关系

您应该安装以下组件:

建议尽可能安装Erlang OTP R16B03-1或更高版本。如果计划运行JavaScript测试套件,则只需要libcurl。只有当您计划安装CouchDB手册页时,才需要help2man。Python和Sphinx只需要构建在线文档。可以通过添加文档禁用生成 --disable-docs 标志到 configure 脚本。

1.1.3.1. 基于Debian的系统

可以通过运行以下命令安装依赖项:

sudo apt-get --no-install-recommends -y install \
    build-essential pkg-config erlang \
    libicu-dev libmozjs185-dev libcurl4-openssl-dev

请确保更新版本号以匹配系统的可用软件包。

1.1.3.2. 基于RedHat的(Fedora、CentOS、RHEL)系统

可以通过运行以下命令安装依赖项:

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

警告:要为CouchDB构建一个版本,需要erlang reltool包,但是在CentOS/RHEL上,这个包依赖于erlangwx,它引入了wxGTK和几个X11库。如果CouchDB是在只支持控制台的服务器上构建的,那么最好将其安装到其他依赖项的单独步骤中,这样就可以使用 yum history 工具在发布后生成。(reltool仅在发行版构建期间需要,但CouchDB功能不需要)

可以通过运行以下命令安装包:

sudo yum install erlang-reltool

1.1.3.3. Mac OS X

跟随 使用自制软件安装 Mac应用安装参考。

如果要从源代码处安装,则需要安装命令行工具::

xcode-select --install

然后可以通过运行以下命令安装其他依赖项:

brew install autoconf autoconf-archive automake libtool \
    erlang icu4c spidermonkey curl pkg-config

你需要 Homebrew 安装以使用 brew 命令。

一些版本的macosx提供了一个有问题的OpenSSL库。如果您遇到CouchDB因分段错误或总线错误而间歇性崩溃的问题,那么您需要安装自己的OpenSSL版本。有关更多信息,请参见上面提到的wiki。

参见

1.1.3.4. FreeBSD

FreeBSD需要使用gnumake。在哪里? make 在本文件中有规定,替换 gmake .

您可以通过运行以下命令来安装:

pkg install gmake

1.1.4. 安装

满足依赖关系后,应运行::

./configure

如果要自定义安装,请通过 --help 到这个脚本。

如果一切顺利,您应该看到以下信息:

You have configured Apache CouchDB, time to relax.

放松点。

要构建CouchDB,您应该运行:

make release

尝试 gmake 如果 make 会给你带来麻烦。

如果必须指定include路径或其他编译器选项,则可以将它们传递给rebar,后者使用ERL_chlags环境变量编译CouchDB。同样,选项可以通过ERLu LDFLAGS环境变量传递给链接器:

make release ERL_CFLAGS="-I/usr/local/include/js -I/usr/local/lib/erlang/usr/include"

如果一切顺利,您应该看到以下信息:

... done
You can now copy the rel/couchdb directory anywhere on your system.
Start CouchDB with ./bin/couchdb from within that directory.

放松点。

注:一个成熟的 ./configure 对于包管理器和相应的 make install 正在开发中,但不是2.0.0版本的一部分。

1.1.5. 用户注册和安全

对于OS X,在下面的步骤中,替换 /Users/couchdb 对于 /home/couchdb .

你应该创建一个特殊的 couchdb CouchDB的用户。

在许多类似Unix的系统上可以运行:

adduser --system \
        --shell /bin/bash \
        --group --gecos \
        "CouchDB Administrator" couchdb

在Mac OS X上,您可以使用工作组管理器创建10.9版之前的用户,以及10.9版之后的dscl或sysadminctl。搜索Apple的支持站点以找到适合您系统的文档。在OS X的最新版本中,此功能也包含在服务器.app,仅作为OS X服务器的一部分通过App Store提供。

必须确保用户有一个正在工作的POSIX shell和一个可写的主目录。

您可以通过以下方式进行测试:

  • 尝试以 couchdb 用户
  • 运行 pwd 检查当前的工作目录

作为建议,复制 rel/couchdb 目录到 /home/couchdb/Users/couchdb .

例如:将构建的couchdb版本复制到新用户的主目录:

cp -R /path/to/couchdb/rel/couchdb /home/couchdb

通过运行以下命令更改CouchDB目录的所有权:

chown -R couchdb:couchdb /home/couchdb

通过运行以下命令更改CouchDB目录的权限:

find /home/couchdb -type d -exec chmod 0770 {} \;

更新ini文件的权限:

chmod 0644 /home/couchdb/etc/*

1.1.6. 第一次运行

注解

一定要 create an admin user 在尝试启动CouchDB之前!

可以通过运行以下命令启动CouchDB服务器:

sudo -i -u couchdb /home/couchdb/bin/couchdb

这使用了 sudo 命令来运行 couchdb 命令作为 couchdb 用户。

当CouchDB启动时,它最终应该显示以下消息:

{database_does_not_exist,[{mem3_shards,load_shards_from_db,"_users" ...

别害怕,我们马上就解决这个问题。

要检查是否一切正常,请将web浏览器指向:

http://127.0.0.1:5984/_utils/index.html

从这里,您应该通过将web浏览器指向以下位置来验证您的安装:

http://localhost:5984/_utils/index.html#verifyinstall

Your installation is not complete. Be sure to complete the Setup steps for a single node or clustered installation.

1.1.7. 作为守护进程运行

CouchDB不再附带任何daemonization脚本。

CouchDB团队建议 runit 持续可靠地运行CouchDB。根据官方网站:

运行 是一个跨平台的Unix init方案,具有服务监督功能,是sysvinit和其他init方案的替代品。它运行在GNU/Linux上, * BSD、MacOSX、Solaris,并且可以很容易地适应其他Unix操作系统。

runit的配置很简单;如果您有问题,请联系CouchDB user mailing listIRC-channel #couchdb 在自由节点网络中。

让我们考虑在Ubuntu16.04上配置runit。以下步骤仅作为示例。详细信息将因操作系统和发行版而异。查看系统的包管理工具以了解详细信息。

安装runit::

sudo apt-get install runit

创建将写入日志的目录:

sudo mkdir /var/log/couchdb
sudo chown couchdb:couchdb /var/log/couchdb

创建包含CouchDB的runit配置的目录:

sudo mkdir /etc/sv/couchdb
sudo mkdir /etc/sv/couchdb/log

创建/etc/sv/couchdb/log/run脚本:

#!/bin/sh
exec svlogd -tt /var/log/couchdb

基本上,它决定了日志的写入位置和方式。看到了吗 man svlogd 了解更多详细信息。

创建/etc/sv/couchdb/run::

#!/bin/sh
export HOME=/home/couchdb
exec 2>&1
exec chpst -u couchdb /home/couchdb/bin/couchdb

这个脚本确定CouchDB将如何启动。如果有必要,可以在这里添加任何其他参数和环境变量。

使脚本可执行:

sudo chmod u+x /etc/sv/couchdb/log/run
sudo chmod u+x /etc/sv/couchdb/run

然后跑:

sudo ln -s /etc/sv/couchdb/ /etc/service/couchdb

几秒钟后,runit将发现一个新的symlink并启动CouchDB。您可以这样控制CouchDB服务::

sudo sv status couchdb
sudo sv stop couchdb
sudo sv start couchdb

当然,CouchDB将在系统启动后不久自动启动。

您还可以配置systemd、launchd或SysV init守护进程以启动CouchDB并使用标准配置文件保持其运行。有关详细信息,请参阅系统文档。