这是我在这里的第一篇文章,如果我没有提供第一次所需的所有信息,非常抱歉!
我的老板和我一直在尝试在我们的一台服务器(Centos 6.5、Postgres 9.2.1、Perl 5.10.1)上安装我们的 postgres 安装 plperl,但我们一直遇到同样的问题,如下所示:
ERROR: could not load library "/opt/PostgreSQL/9.2/lib/postgresql/plperl.so":
/opt/PostgreSQL/9.2/lib/postgresql/plperl.so: undefined symbol: Perl_sv_2bool_flags
当我们尝试通过 SQL 或使用 PgAdmin III GUI 安装语言(创建语言 plperl;)时,会返回此错误。
我已经检查了我们是否有一个lperl.so
文件,/opt/PostgreSQL/9.2/lib/postgresql/
并且正在寻找libperl.so
与此问题有关的大多数帖子。我尝试过放置libperl.so
在许多不同的地方,因为每个人和他的狗对应该放置的位置都有不同的建议。
运行ldd /opt/PostgreSQL/9.2/lib/postgresql/plperl.so
返回以下内容:
ldd /opt/PostgreSQL/9.2/lib/postgresql/plperl.so
linux-vdso.so.1 => (0x00007fff2d9b7000)
libperl.so => /lib64/libperl.so (0x00007f8ab5c11000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8ab59f3000)
libc.so.6 => /lib64/libc.so.6 (0x00007f8ab565f000)
libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f8ab5445000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f8ab522b000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f8ab5027000)
libm.so.6 => /lib64/libm.so.6 (0x00007f8ab4da3000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f8ab4b6b000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007f8ab4968000)
/lib64/ld-linux-x86-64.so.2 (0x00000034aa800000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007f8ab46f1000)
我认为 Postgres 和 Perl 的版本不是问题,因为我们有另一台服务器运行 Centos 6.5、Postgres 9.3 和 Perl 5.10.1,pl/perl 运行良好(我也尝试查看那里发生了什么要修复这但无法解决)。
据我所知,Postgres 期望 libperl.so 位于 /lib64 中,但是当安装 Perl 时,它安装在其他地方。目前 Postgres 是唯一将使用 libperl.so 的东西
不幸的是,我不知道这台服务器上的所有东西是如何安装的,因为我的老板在我加入公司之前就已经设置好了所有东西,他才刚刚决定我们实际上需要让它工作。
通过查看我们的两台服务器,我看不出安装和配置有任何差异,这会导致一台工作而另一台不工作。
我对此几乎束手无策(这是我们需要通过 Postgres 安装解决的最后一个问题),所以任何建议都将不胜感激。
干杯