CentOS 8 安装 RavenDB 7.2 指南

CentOS 8 在线下载与离线 tar.bz2 两种方式安装 RavenDB 7.2 的完整流程,含 libicu 依赖安装、run.sh 命令启动与 systemd 自启动、验证与常见问题。

RavenDBRavenDB文档数据库CentOS 8安装部署2026/10/03

CentOS 8 安装 RavenDB 7.2 指南

目标:在 CentOS 8 上从零安装 RavenDB 7.2(社区版),覆盖在线下载与离线 tar.bz2 两种安装方式,命令启动与 systemd 自启动两种运行方式,并给出安装验证与常见问题。

1. 版本选型

RavenDB 是 .NET 平台的全文档型 NoSQL 数据库。社区版免费使用,无需 license,最多可组建 3 节点集群。CentOS 8 下安装与 Ubuntu 的主要差异在于依赖包名称(bzip2、libicu)。

本文以 RavenDB 7.2.6(Linux x64 版)为例:

项目值
版本7.2.6(Build 72033)
官方下载地址https://hibernatingrhinos.com/downloads/RavenDB%20for%20Linux%20x64/latest
包体大小约 189 MB(RavenDB-7.2.6-linux-x64.tar.bz2)
安装位置/opt/ravendb
运行用户ravendb(系统用户)
默认端口8080(HTTP / Studio)
数据目录/opt/ravendb/RavenData

2. 基础环境准备

2.1 系统依赖

RavenDB 自带的 .NET 运行时依赖 ICU(国际化)库,CentOS 8 需显式安装 libicu;解压 tar.bz2 需要 bzip2:

sudo yum install -y bzip2 libicu

⚠️ 缺少 libicu 时,执行 RavenDB 会报错:Couldn't find a valid ICU package installed on the system. Please install libicu ...,安装 libicu 后即可解决。

2.2 创建运行用户与目录

sudo useradd -r -m -s /bin/bash ravendb
sudo mkdir -p /opt/ravendb

3. 方式一:在线下载安装

3.1 下载官方包

cd /tmp
wget "https://hibernatingrhinos.com/downloads/RavenDB%20for%20Linux%20x64/latest" -O RavenDB-7.2.6-linux-x64.tar.bz2
ls -lh RavenDB-7.2.6-linux-x64.tar.bz2
-rw-r--r-- 1 root root 189M  9月  1 16:56 RavenDB-7.2.6-linux-x64.tar.bz2

3.2 解压并部署

cd /tmp
tar xjf RavenDB-7.2.6-linux-x64.tar.bz2
sudo cp -r RavenDB/* /opt/ravendb/
sudo chown -R ravendb:ravendb /opt/ravendb

验证可执行文件:

/opt/ravendb/Server/Raven.Server --version
7.2.6

3.3 创建 settings.json 配置文件

sudo tee /opt/ravendb/Server/settings.json > /dev/null <<'EOF'
{
    "ServerUrl": "http://0.0.0.0:8080",
    "DataDir": "/opt/ravendb/RavenData",
    "Security.UnsecuredAccessAllowed": "PublicNetwork",
    "Setup.Mode": "None"
}
EOF
sudo chown ravendb:ravendb /opt/ravendb/Server/settings.json

配置项说明:

配置项说明
ServerUrlHTTP 监听地址与端口,0.0.0.0:8080 表示监听所有网卡 8080 端口
DataDir数据库数据存储目录
Security.UnsecuredAccessAllowed允许无证书访问;PublicNetwork 表示所有网络均可
Setup.Mode跳过首次交互式 Setup 向导,直接以现有配置启动

4. 启动方式一:命令行启动

4.1 run.sh 启动

cd /opt/ravendb
sudo -u ravendb ./run.sh

4.2 无头模式直接启动

sudo -u ravendb bash -c 'cd /opt/ravendb/Server && ./Raven.Server -n -l'

启动日志(实测):

      Safe by default, optimized for efficiency

 Build 72033, Version 7.2, SemVer 7.2.6, Commit ea1b627
 PID 105, 64 bits, 6 Cores, Phys Mem 31.299 GBytes, Arch: X64
 Source Code (git repo): https://github.com/ravendb/ravendb
 Built with love by RavenDB Ltd. and awesome contributors!
+---------------------------------------------------------------+
Server available on: http://d5b4a6bd4738:8080
Tcp listening on 0.0.0.0:45145
Server started, listening to requests...
TIP: type 'help' to list the available commands.
Running non-interactive.

5. 启动方式二:systemd 自启动

5.1 编写 systemd 单元文件

创建 /etc/systemd/system/ravendb.service:

[Unit]
Description=RavenDB v7.2
After=network.target

[Service]
LimitCORE=infinity
LimitNOFILE=65535
LimitRSS=infinity
LimitAS=infinity
LimitMEMLOCK=infinity
TasksMax=infinity
Restart=on-failure
Type=exec
TimeoutStopSec=300
User=ravendb
Group=ravendb
ExecStart=/opt/ravendb/run.sh
WorkingDirectory=/opt/ravendb

[Install]
WantedBy=multi-user.target

5.2 加载并启用服务

sudo systemctl daemon-reload
sudo systemctl enable ravendb
sudo systemctl start ravendb

5.3 验证服务状态

sudo systemctl is-active ravendb
sudo systemctl is-enabled ravendb
active
enabled
sudo journalctl -u ravendb -n 8
Oct 03 00:56:43 hostname run.sh[197]: Server available on: http://d5b4a6bd4738:8080
Oct 03 00:56:43 hostname run.sh[197]: Tcp listening on 0.0.0.0:45145
Oct 03 00:56:43 hostname run.sh[197]: Server started, listening to requests...
Oct 03 00:56:43 hostname run.sh[197]: TIP: type 'help' to list the available commands.
Oct 03 00:56:43 hostname run.sh[197]: ravendb> End of standard input detected, switching to server mode...
Oct 03 00:56:43 hostname run.sh[197]: Running non-interactive.

停止与重启:

sudo systemctl stop ravendb
sudo systemctl restart ravendb

6. 方式二:离线压缩包部署

适用于无法访问公网的内网服务器。

6.1 有网机器下载

wget "https://hibernatingrhinos.com/downloads/RavenDB%20for%20Linux%20x64/latest" -O RavenDB-7.2.6-linux-x64.tar.bz2

6.2 拷贝到目标服务器

scp RavenDB-7.2.6-linux-x64.tar.bz2 user@目标服务器:/tmp/

6.3 内网服务器解压部署

cd /tmp
tar xjf RavenDB-7.2.6-linux-x64.tar.bz2
sudo cp -r RavenDB/* /opt/ravendb/
sudo chown -R ravendb:ravendb /opt/ravendb

后续 settings.json、systemd 配置与启动流程与在线方式一致,参照第 3.3 节与第 5 节。

⚠️ 离线服务器需提前准备 bzip2 与 libicu 的 rpm 包(系统依赖不随 RavenDB 包分发)。

7. 安装后验证

7.1 版本验证

curl -s http://127.0.0.1:8080/build/version
{"BuildVersion":72033,"ProductVersion":"7.2","CommitHash":"ea1b627","FullVersion":"7.2.6"}

7.2 创建测试数据库并读写文档

# 建库
curl -s -X PUT "http://127.0.0.1:8080/admin/databases?name=testdb" \
  -H "Content-Type: application/json" \
  -d '{"DatabaseName":"testdb","Settings":{"DataDir":"Databases/testdb"},"Disabled":false}'

# 写文档
curl -s -X PUT "http://127.0.0.1:8080/databases/testdb/docs?id=users/1" \
  -H "Content-Type: application/json" \
  -d '{"Name":"Alice","Age":30}'

# 读文档
curl -s "http://127.0.0.1:8080/databases/testdb/docs?id=users/1"

写入返回:

{"Id":"users/1","ChangeVector":"A:1-Fwv8n7UTZk2z4bNGeDVAeg"}

7.3 Studio 界面验证

浏览器访问 http://<服务器IP>:8080 自动跳转到 /studio/index.html,进入 RavenDB Studio Web 管理界面。

8. 常见问题

8.1 启动报找不到 ICU 库

现象:

Couldn't find a valid ICU package installed on the system. Please install libicu (or icu-libs) ...

解决:

sudo yum install -y libicu

8.2 解压报 bzip2 不可用

sudo yum install -y bzip2

8.3 端口被占用

修改 settings.json 中 ServerUrl 端口后重启:

sudo systemctl restart ravendb

8.4 首次无配置启动端口随机

务必按 3.3 节显式配置 ServerUrl,避免首次启动随机端口。

9. 卸载

sudo systemctl stop ravendb
sudo systemctl disable ravendb
sudo rm -f /etc/systemd/system/ravendb.service
sudo systemctl daemon-reload
sudo rm -rf /opt/ravendb
sudo userdel ravendb

10. 参考链接

  • 官方下载页:https://hibernatingrhinos.com/downloads/
  • RavenDB 文档:https://docs.ravendb.net/
  • Setup Wizard 指南:https://docs.ravendb.net/7.2/start/installation/setup-wizard/overview