当前位置: 首页 > news >正文

Rocky Linux9.6 安装PostgreSQL 18和zhparser

Rocky Linux9.6安装PostgreSQL18 可以按官方文档安装

# Install the repository RPM:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Disable the built-in PostgreSQL module:
sudo dnf -qy module disable postgresql# Install PostgreSQL:
sudo dnf install -y postgresql18-server

安装zhparser必须安装postgresql-devel

PostgreSQL18对应的版本为postgresql18-devel

这里使用Rocky Linux9.6安装postgresql18-devel有一个坑,

postgresql18-devel 依赖 perl-IPC-Run

使用 sudo dnf install -y perl-IPC-Run 找不到

[root@localhost ~]# sudo dnf install -y postgresql18-devel
Last metadata expiration check: 0:03:10 ago on Tue Nov 18 16:18:20 2025.
Error: Problem: cannot install the best candidate for the job- nothing provides perl(IPC::Run) needed by postgresql18-devel-18.1-1PGDG.rhel9.x86_64 from pgdg18- nothing provides perl-IPC-Run needed by postgresql18-devel-18.1-1PGDG.rhel9.x86_64 from pgdg18
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

参考链接

https://forums.rockylinux.org/t/cant-locate-ipc-run-pm-in-inc-on-rl-9-5/18552/5

https://unix.stackexchange.com/questions/759404/how-to-yum-install-perlipcrun-on-oracle-linux-9

使用 cpan 安装 perl-IPC-Run

# 1. 安装基础 Perl 和 CPAN
sudo dnf install -y perl perl-CPAN# 2. 安装 IPC::Run via CPAN(静默模式)
sudo cpan -T IPC::Run# 3. 验证安装
perl -MIPC::Run -e 'print "IPC::Run is available.\n"'

这里使用cpan 安装 perl-IPC-Run后再安装postgresql18-devel 依然会报缺少IPC::Run,这里我们只能忽略他手动安装

sudo dnf download postgresql18-devel
sudo rpm -ivh --nodeps postgresql18-devel-*.rpm
# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-18/bin/postgresql-18-setup initdb
sudo systemctl enable postgresql-18
sudo systemctl start postgresql-18

这时候 PostgreSQL18已经成功安装, 下面开始安装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 

sudo dnf install -y gitgit 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
# 手动复制文件 
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/

注:如果我们使用 sudo make install PG_CONFIG=/usr/pgsql-18/bin/pg_config SCWS_HOME=/usr/local/scws 可能会报错提示缺少llvm-lto,而我的环境为生产环境没有LLVM 工具链,所以没有使用make install 而选择的手动安装

[root@localhost zhparser]# sudo make install PG_CONFIG=/usr/pgsql-18/bin/pg_config SCWS_HOME=/usr/local/scws
/usr/bin/mkdir -p '/usr/pgsql-18/lib'
/usr/bin/mkdir -p '/usr/pgsql-18/share/extension'
/usr/bin/mkdir -p '/usr/pgsql-18/share/extension'
/usr/bin/mkdir -p '/usr/pgsql-18/share/tsearch_data'
/usr/bin/install -c -m 755  zhparser.so '/usr/pgsql-18/lib/zhparser.so'
/usr/bin/install -c -m 644 .//zhparser.control '/usr/pgsql-18/share/extension/'
/usr/bin/install -c -m 644 .//zhparser--1.0.sql .//zhparser--unpackaged--1.0.sql .//zhparser--1.0--2.0.sql .//zhparser--2.0.sql .//zhparser--2.0--2.1.sql .//zhparser--2.1.sql .//zhparser--2.1--2.2.sql .//zhparser--2.2.sql .//zhparser--2.3.sql  '/usr/pgsql-18/share/extension/'
/usr/bin/install -c -m 644 .//dict.utf8.xdb .//rules.utf8.ini '/usr/pgsql-18/share/tsearch_data/'
/usr/bin/mkdir -p '/usr/pgsql-18/lib/bitcode/zhparser'
/usr/bin/mkdir -p '/usr/pgsql-18/lib/bitcode'/zhparser/
/usr/bin/install -c -m 644 zhparser.bc '/usr/pgsql-18/lib/bitcode'/zhparser/./
cd '/usr/pgsql-18/lib/bitcode' && /usr/lib64/llvm20/bin/llvm-lto -thinlto -thinlto-action=thinlink -o zhparser.index.bc zhparser/zhparser.bc
/bin/sh: line 1: /usr/lib64/llvm20/bin/llvm-lto: No such file or directory
make: *** [/usr/pgsql-18/lib/pgxs/src/makefiles/pgxs.mk:242: install] Error 127

 

测试 zhparser

# 进入 PostgreSQL
sudo -u postgres psql-- 创建扩展
CREATE EXTENSION zhparser;

-- 测试分词
SELECT ts_parse('zhparser', '今天天气真好');
 

最终输出

ts_parse
------------
(116,今天)
(110,天气)
(110,真好)
(3 rows)

 

文章中可能有错误,欢迎指正!

http://www.jsqmd.com/news/44415/

相关文章:

  • 水平高的北京海淀区婚姻律师行业观察与参考
  • 2025年靠谱的智能垃圾桶垃圾袋用户口碑最好的厂家榜
  • 北京口碑好的涉外离婚律师服务解析及专业团队推荐
  • linux c调用shell
  • 2025年比较好的设计师集成阻尼铰链厂家最新权威推荐排行榜
  • 2025年11月杜甫研究学者专家评价榜:程韬光教授文化贡献全景呈现
  • 2025年比较好的泡沫箱最新TOP品牌厂家排行
  • 2025年11月天文馆厂家推荐榜:权威评测与综合对比分析指南
  • 2025 年最新推荐打印贴标机厂家权威排行榜:自动/在线/实时/条码/智能/防爆/称重/平面打印贴标机公司推荐
  • 2025年评价高的聚氨酯发泡保温管道厂家推荐及选购指南
  • 2025 最新打印贴标一体机厂家口碑推荐榜:国际测评认证,覆盖多品类精准适配企业生产需求称重打印贴标一体机/实时打印贴标一体机/标签打印贴标一体机/条码打印贴标一体机/模块化打印贴标一体机公司推荐
  • 解决修改IEnumerable不成功的问题
  • 伊克罗德信息连获三重国际认证,以标准化服务体系护航客户数智化转型
  • 2025年知名的编织金属网厂家推荐及选购指南
  • 2025年11月离婚纠纷律师推荐评价:行业榜单与详细对比解析
  • 2025年质量好的玻璃钢夹砂排污管道优质厂家推荐榜单
  • C++之类和对象(上)(多例子详解this指针以及封装特性的初步引入) - 指南
  • 2025年11月中国遗产继承律师评价榜:从资质到案例的实战能力解析
  • 解决 Android Studio 卡在 Install Android SDK Platform xxx 问题(importing xxx gradle project)
  • 2025年知名的热风循环回火炉厂家推荐及采购指南
  • 错题整理
  • zabbix6.0+grafana12.2
  • Ragflow知识图谱构建
  • python 压缩图标大小
  • 2025年知名的真空加热炉用户口碑最好的厂家榜
  • PG事务id回卷问题概述
  • 【第5章 序列、集合和字典】循环引用
  • 2025年热门的钣金加工用户口碑最好的厂家榜
  • file文件的复制拷贝
  • 2025年靠谱的孤立导体测试仪厂家最新权威实力榜