PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

FEHLER:Bibliothek „/opt/PostgreSQL/9.0/lib/postgresql/plperl.so“ konnte nicht geladen werden:libperl.so:

Der obige Fehler wurde ausgelöst, als ich versuchte, die Sprache plperlu zu erstellen. Es weist darauf hin, dass die Bibliothek libperl.so fehlt. Sehen Sie sich die Schritte an, die zur Überwindung dieses Problems und zur erfolgreichen Erstellung der plperlu-Sprache in PostgreSQL durchgeführt wurden.

Methode 1 (Die libperl.so finden und einen Softlink zu diesem Ort erstellen)

postgres=# create LANGUAGE plperlu;
ERROR: could not load library "/opt/PostgreSQL/9.0/lib/postgresql/plperl.so": libperl.so: cannot open shared object file: No such file or directory
postgres=# q

Suchen Sie nun auf Ihrer Box nach der Datei libperl.so und fügen Sie diesen Speicherort zu Ihrem LD_LIBRARY PATH hinzu. Vergessen Sie nicht, den Benutzer auf postgres umzustellen.

[root@localhost /]# find -name libperl.so
./usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE/libperl.so
./usr/lib/perl5/CORE/libperl.so
./usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE

[root@localhost /]# su - postgres

Legen Sie den LD_LIBRARY_PATH

fest
-bash-4.1$ export LD_LIBRARY_PATH=/usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE:$LD_LIBRARY_PATH

Starten Sie den Cluster neu, um die Änderungen zu übernehmen.

-bash-4.1$ pg_ctl restart
waiting for server to shut down....... done
server stopped
server starting

Sie können jetzt die Sprache erstellen.

-bash-4.1$ psql
psql (9.0.1)
Type "help" for help.

postgres=# create LANGUAGE plperlu;
CREATE LANGUAGE

Methode 2 (Indem Sie das neueste ActivePerl installieren)

Schritt 1:
Legen Sie nach der Installation von ActivePerl den LD_LIBRARY_PATH.

fest
postgres@localhost:/opt/ActivePerl-5.12/lib/CORE> export LD_LIBRARY_PATH=/opt/ActivePerl-5.12/lib/CORE:/opt/PostgreSQL/9.0/lib/postgresql

Schritt 2:

postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> ldd plperl.so 
linux-vdso.so.1 => (0x00007fff8cf79000)
libperl.so => /opt/ActivePerl-5.12/lib/CORE/libperl.so (0x00007fbd3d654000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbd3d40a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbd3d206000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbd3cfb0000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fbd3cd74000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fbd3cb71000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbd3c954000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbd3c5f5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbd3dad8000)

Schritt 3:

postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> pg_ctl restart
postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> psql
psql (9.0.2)
Type "help" for help.

postgres=# create language plperlu;
CREATE LANGUAGE

Posten Sie Ihre Kommentare.