CentOS 8 安装 RavenDB 7.2 指南
CentOS 8 在线下载与离线 tar.bz2 两种方式安装 RavenDB 7.2 的完整流程,含 libicu 依赖安装、run.sh 命令启动与 systemd 自启动、验证与常见问题。
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
配置项说明:
| 配置项 | 说明 |
|---|---|
ServerUrl | HTTP 监听地址与端口,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