amutu / zhparser

zhparser is a PostgreSQL extension for full-text search of Chinese language

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PG_CONFIG=/usr/pgsql-11/bin/pg_config make && make install 出错

wangjunjx8868 opened this issue · comments

Makefile:20: /usr/pgsql-11/lib/pgxs/src/makefiles/pgxs.mk: 没有那个文件或目录
实际上pgxs.mk文件在
/usr/lib64/pgsql/pgxs/src/makefiles/pgxs.mk

实际上 /usr/pgsql-11/bin/ 文件下有 pg_config 文件
但是提示 /usr/pgsql-11/lib/pgxs/src/makefiles/pgxs.mk 不存在
问题是pgxs.mk 文件在/usr/lib64/pgsql/pgxs/src/makefiles/ 目录下

看网上要安装 postgresql-server-dev
但是 postgresql-server-dev-11 无法安装

如果你是RHEL/CentOS,包名叫postgresql-devel,看官方文档,不要看“网上”:https://www.postgresql.org/download/linux/redhat/

[root@iZuf6jer2opzzwbcrfy3rxZ ~]# yum install postgresql-devel
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
软件包 postgresql-devel-9.2.24-4.el7_8.x86_64 已安装并且是最新版本
无须任何处理

看官方文档,看官方文档,看官方文档……已经不想说什么了

专门开了个centos 7的虚拟机实测了下,如果按照postgresql官方文档安装的话,一切没问题:

[vagrant@localhost zhparser]$ export PG_CONFIG=/usr/pgsql-11/bin/pg_config
[vagrant@localhost zhparser]$ make
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -fPIC -I/usr/local/include/scws  -I. -I./ -I/usr/pgsql-11/include/server -I/usr/pgsql-11/include/internal  -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include  -c -o zhparser.o zhparser.c
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches   -m64 -mtune=generic -fPIC -shared -o zhparser.so zhparser.o -L/usr/pgsql-11/lib   -L/usr/lib64/llvm5.0/lib  -L/usr/lib64 -Wl,--as-needed -Wl,-rpath,'/usr/pgsql-11/lib',--enable-new-dtags  -lscws -L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib
/opt/rh/llvm-toolset-7/root/usr/bin/clang -Wno-ignored-attributes -fno-strict-aliasing -fwrapv -O2  -I/usr/local/include/scws  -I. -I./ -I/usr/pgsql-11/include/server -I/usr/pgsql-11/include/internal  -D_GNU_SOURCE -I/usr/include/libxml2  -I/usr/include -flto=thin -emit-llvm -c -o zhparser.bc zhparser.c
[vagrant@localhost zhparser]$ sudo make install
/usr/bin/mkdir -p '/usr/pgsql-11/lib'
/usr/bin/mkdir -p '/usr/pgsql-11/share/extension'
/usr/bin/mkdir -p '/usr/pgsql-11/share/extension'
/usr/bin/mkdir -p '/usr/pgsql-11/share/tsearch_data'
/usr/bin/install -c -m 755  zhparser.so '/usr/pgsql-11/lib/zhparser.so'
/usr/bin/install -c -m 644 .//zhparser.control '/usr/pgsql-11/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  '/usr/pgsql-11/share/extension/'
/usr/bin/install -c -m 644 .//dict.utf8.xdb .//rules.utf8.ini '/usr/pgsql-11/share/tsearch_data/'
/usr/bin/mkdir -p '/usr/pgsql-11/lib/bitcode/zhparser'
/usr/bin/mkdir -p '/usr/pgsql-11/lib/bitcode'/zhparser/
/usr/bin/install -c -m 644 zhparser.bc '/usr/pgsql-11/lib/bitcode'/zhparser/./
cd '/usr/pgsql-11/lib/bitcode' && /usr/lib64/llvm5.0/bin/llvm-lto -thinlto -thinlto-action=thinlink -o zhparser.index.bc zhparser/zhparser.bc
[vagrant@localhost zhparser]$

好的,感谢了

安装后使用也没问题:

[vagrant@localhost ~]$ sudo -u postgres psql
could not change directory to "/home/vagrant": Permission denied
psql (11.11)
Type "help" for help.

postgres=# create extension zhparser ;
CREATE EXTENSION
postgres=# \dx
                        List of installed extensions
   Name   | Version |   Schema   |               Description
----------+---------+------------+------------------------------------------
 plpgsql  | 1.0     | pg_catalog | PL/pgSQL procedural language
 zhparser | 2.1     | public     | a parser for full-text search of Chinese
(2 rows)

postgres=#

也可以 make PG_CONFIG=/xxx/bin/pg_config