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 (20.x >= 21.3.8.5, 21.x >= 21.2.3, 22.x >= 22.0.5, 23.x, 24.x)
- ICU
- OpenSSL
- Mozilla SpiderMonkey (1.8.5, 60, 68, 78)
- GNU Make
- GNU Compiler Collection
- libcurl
- help2man
- Python (>=2.7) for docs
- Python Sphinx (>=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 list 或 IRC-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并使用标准配置文件保持其运行。有关详细信息,请参阅系统文档。