PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

ГРЕШКА:не можа да се зареди библиотеката “/opt/PostgreSQL/9.0/lib/postgresql/plperl.so”:libperl.so:

По-горе беше хвърлена грешка, когато се опитвах да създам език plperlu. Това показва, че липсва библиотека libperl.so. Вижте извършените стъпки за преодоляване на този проблем и успешно създаване на езика plperlu в PostgreSQL.

Метод 1 (Намиране на libperl.so и създаване на мека връзка към това местоположение)

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

Сега потърсете файла libperl.so във вашата кутия и добавете това местоположение към вашия LD_LIBRARY PATH. Не забравяйте да превключите потребителя на 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

Задайте LD_LIBRARY_PATH

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

Рестартирайте клъстера, за да извършите промените.

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

Вече сте готови да създадете езика.

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

postgres=# create LANGUAGE plperlu;
CREATE LANGUAGE

Метод 2 (чрез инсталиране на най-новия ActivePerl)

Стъпка 1:
След като инсталирате ActivePerl, задайте 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

Стъпка 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)

Стъпка 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

Публикувайте вашите коментари.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пазете PostgreSQL понякога да избира лош план за заявка

  2. Избиране на редове, подредени по една колона и различни от друга

  3. Cloud9 постгрес

  4. Защо функциите PL/pgSQL могат да имат страничен ефект, докато SQL функциите не могат?

  5. Как да предотвратим изтриването на първия ред в таблицата (PostgreSQL)?