Rocky Linux9.6 安装PostgreSQL 18和zhparser
Rocky Linux 9.6 安装 PostgreSQL 18 和 zhparser 详细指南
简介
本文将详细介绍如何在 Rocky Linux 9.6 系统上安装 PostgreSQL 18 数据库,并配置中文分词扩展 zhparser。该指南涵盖了从安装依赖到测试分词功能的完整过程。
安装 PostgreSQL 18
1. 添加 PostgreSQL 官方仓库
首先,需要添加 PostgreSQL 的官方 YUM 仓库:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
2. 禁用内置 PostgreSQL 模块
Rocky Linux 自带的 PostgreSQL 模块需要禁用,以避免与官方仓库的版本冲突:
sudo dnf -qy module disable postgresql
3. 安装 PostgreSQL 18
现在可以安装 PostgreSQL 18 服务器:
sudo dnf install -y postgresql18-server
安装 PostgreSQL 18 开发包
1. 解决 perl-IPC-Run 依赖问题
安装 postgresql18-devel 包时会遇到 perl-IPC-Run 依赖缺失的问题。由于 Rocky Linux 9.6 默认仓库中没有该包,需要通过 CPAN 手动安装。
安装基础 Perl 和 CPAN:
sudo dnf install -y perl perl-CPAN
通过 CPAN 安装 IPC::Run:
sudo cpan -T IPC::Run
验证安装:
perl -MIPC::Run -e 'print "IPC::Run is available.\n"'
2. 手动安装 postgresql18-devel
由于依赖问题,即使安装了 perl-IPC-Run,直接安装 postgresql18-devel 仍可能失败。此时需要手动下载并安装:
sudo dnf download postgresql18-devel
sudo rpm -ivh --nodeps postgresql18-devel-*.rpm
3. 初始化数据库并启动服务
sudo /usr/pgsql-18/bin/postgresql-18-setup initdb
sudo systemctl enable postgresql-18
sudo systemctl start postgresql-18
安装 scws 分词库
zhparser 扩展依赖于 scws 分词库,需要先安装:
sudo dnf install -y wget cmake make gcc gcc-c++ boost-devel tar bzip2 clang llvm-devel
wget http://www.xunsearch.com/scws/down/scws-1.2.3.tar.bz2
tar -xjvf scws-1.2.3.tar.bz2
cd scws-1.2.3
./configure --prefix=/usr/local/scws
make
sudo make install
编译安装 zhparser
1. 克隆源码并编译
sudo dnf install -y git
git clone https://github.com/amutu/zhparser.git
cd zhparser
复制词典文件:
sudo mkdir -p /usr/local/scws/etc
sudo cp dict.utf8.xdb /usr/local/scws/etc/
编译:
make PG_CONFIG=/usr/pgsql-18/bin/pg_config SCWS_HOME=/usr/local/scws
2. 手动复制文件
由于生产环境可能没有 LLVM 工具链,无法使用 make install,建议手动复制文件:
# 创建必要的目录
sudo mkdir -p /usr/pgsql-18/lib
sudo mkdir -p /usr/pgsql-18/share/extension
sudo mkdir -p /usr/pgsql-18/share/tsearch_data
# 复制文件
sudo cp zhparser.so /usr/pgsql-18/lib/
sudo cp zhparser.control /usr/pgsql-18/share/extension/
sudo cp zhparser--*.sql /usr/pgsql-18/share/extension/
sudo cp dict.utf8.xdb rules.utf8.ini /usr/pgsql-18/share/tsearch_data/
测试 zhparser
1. 启用扩展
# 进入 PostgreSQL
sudo -u postgres psql
# 在 PostgreSQL 命令行中执行
CREATE EXTENSION zhparser;
2. 测试分词功能
-- 测试分词
SELECT ts_parse('zhparser', '今天天气真好');
如果看到返回结果,说明 zhparser 扩展已成功安装并可以正常工作。
故障排除
问题:make install 时提示缺少 llvm-lto
解决方案: 由于生产环境通常不包含 LLVM 工具链,建议使用手动复制文件的方式,而不是 make install。

浙公网安备 33010602011771号