これは私の最初の投稿なので、最初に必要なすべての情報を提供していない場合は申し訳ありません!
私の上司と私は、サーバーの 1 つ (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 がインストールされたときに別の場所にインストールされていました。現在、libperl.so を使用するのは Postgres だけです。
残念ながら、私が入社する前に上司がすべてをセットアップし、実際に機能させる必要があると判断したばかりなので、すべてがこのサーバーにどのようにインストールされたかはわかりません。
両方のサーバーを見ても、インストールと構成に違いが見られず、一方が機能し、他方が機能しません。
私はこれでほとんど機知に富んでいます(Postgresのインストールで修正する必要がある最後の問題です)ので、提案をいただければ幸いです。
乾杯