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

参考资料

posted @ 2025-11-19 11:00  正在缓冲  阅读(13)  评论(0)    收藏  举报