amutu / zhparser

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CREATE EXTENSION zhparser 出错( CentOS (core) 7.7.1908 x64, PostgreSQL 12.1)

K69G4JRA725W opened this issue · comments

编译和安装 zhparser

命令:PG_CONFIG=/usr/pgsql-12/bin/pg_config make && make install
Makefile:20: /usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk: No such file or directory
make: *** No rule to make target `/usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk'. Stop.

然后,我试了:
命令:yum install postgresql-server-dev-all
No package postgresql-server-dev-all available.
命令:yum install postgresql-common
No package postgresql-common available.

试了很多办法,都不解决问题。我的系统信息: CentOS (core) 7.7.1908 x64, PostgreSQL 12.1

make install前面也必须加上PG_CONFIG

为了避免冗长,你可以考虑定义一次环境变量:

export PG_CONFIG=/usr/pgsql-12/bin/pg_config
make && make install
make && make install

不行的,还是报错
Makefile:20: /usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk: No such file or directory
make: *** No rule to make target `/usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk'. Stop.

make && make install

不行的,还是报错
Makefile:20: /usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk: No such file or directory
make: *** No rule to make target `/usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk'. Stop.

这个报错不是很明显了么 No such file or directory,你的pg_config路径很明显不对,我的命令是针对楼主的,它的环境是pg12,而pg 12在deb包安装的情况下就是这个路径。你需要自己想办法列出你的环境的软件包安装路径。比如rpm包可以用rpm -ql <pkg>命令列出软件包包含的文件,deb包可以用dpkg -L <pkg>命令列出软件包所包含的文件路径,archlinux可以用pacman -Ql <pkg>列出软件包所包含的文件路径,配合grep命令可以筛选一个准确的pg_config在哪,然后配合PG_CONFIG环境变量才能正确执行,乱抄一通肯定不解决问题

make && make install

不行的,还是报错
Makefile:20: /usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk: No such file or directory
make: *** No rule to make target `/usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk'. Stop.

这个报错不是很明显了么 No such file or directory,你的pg_config路径很明显不对,我的命令是针对楼主的,它的环境是pg12,而pg 12在deb包安装的情况下就是这个路径。你需要自己想办法列出你的环境的软件包安装路径。比如rpm包可以用rpm -ql <pkg>命令列出软件包包含的文件,deb包可以用dpkg -L <pkg>命令列出软件包所包含的文件路径,archlinux可以用pacman -Ql <pkg>列出软件包所包含的文件路径,配合grep命令可以筛选一个准确的pg_config在哪,然后配合PG_CONFIG环境变量才能正确执行,乱抄一通肯定不解决问题

路径问题我是知道的,我的是11版本,我用的是我服务器的路径,我是为了回复方便复制的,实际上我执行命令换成了我的路径

/usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk: No such file or directory

make && make install

不行的,还是报错
Makefile:20: /usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk: No such file or directory
make: *** No rule to make target `/usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk'. Stop.

这个报错不是很明显了么 No such file or directory,你的pg_config路径很明显不对,我的命令是针对楼主的,它的环境是pg12,而pg 12在deb包安装的情况下就是这个路径。你需要自己想办法列出你的环境的软件包安装路径。比如rpm包可以用rpm -ql <pkg>命令列出软件包包含的文件,deb包可以用dpkg -L <pkg>命令列出软件包所包含的文件路径,archlinux可以用pacman -Ql <pkg>列出软件包所包含的文件路径,配合grep命令可以筛选一个准确的pg_config在哪,然后配合PG_CONFIG环境变量才能正确执行,乱抄一通肯定不解决问题

路径问题我是知道的,我的是11版本,我用的是我服务器的路径,我是为了回复方便复制的,实际上我执行命令换成了我的路径

但是你的报错信息明明是Makefile:20: /usr/pgsql-12/lib/pgxs/src/makefiles/pgxs.mk: No such file or directory,怎么会找到pgsql-12去?肯定是你用的路径不对,检查下你的环境是怎么装的,如果使用官方的安装包去装不会有这些奇怪的问题

@abcfy2
#52
这我的问题页面,你看下