sql >> Databasteknik >  >> RDS >> PostgreSQL

FEL:kunde inte ladda biblioteket "/opt/PostgreSQL/9.0/lib/postgresql/plperl.so":libperl.so:

Ovanstående fel kastades, när jag försökte skapa språk plperlu. Det indikerar att det saknas ett bibliotek libperl.so. Kolla in stegen som utförs för att övervinna detta problem och framgångsrikt skapa plperlu-språket i PostgreSQL.

Metod 1 (Hitta libperl.so och skapa mjuklänk till den platsen)

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

Sök nu efter filen libperl.so på din box och lägg till den platsen i din LD_LIBRARY PATH. Glöm inte att byta användare till postgres.

[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

Ställ in LD_LIBRARY_PATH

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

Starta om klustret för att utföra ändringarna.

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

Du är nu redo att skapa språket.

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

postgres=# create LANGUAGE plperlu;
CREATE LANGUAGE

Metod 2 (genom att installera den senaste ActivePerl)

Steg 1:
När du har installerat ActivePerl, ställ in LD_LIBRARY_PATH.

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

Steg 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)

Steg 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

Skriv dina kommentarer.


  1. Fråga för att hitta genomsökningar av hela tabellen i Oracle

  2. Ta bort alla blanksteg från en sträng i SQL Server

  3. Databasdesign 101

  4. SQLite datum och tid