PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

BŁĄD:nie można załadować biblioteki „/opt/PostgreSQL/9.0/lib/postgresql/plperl.so”:libperl.so:

Powyżej wyrzucony błąd, gdy próbowałem stworzyć język plperlu. Wskazuje, że brakuje biblioteki libperl.so. Sprawdź kroki wykonane w celu rozwiązania tego problemu i pomyślnego utworzenia języka plperlu w PostgreSQL.

Metoda 1 (znalezienie libperl.so i utworzenie miękkiego linku do tej lokalizacji)

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

Teraz wyszukaj plik libperl.so w swoim pudełku i dodaj tę lokalizację do swojej LD_LIBRARY PATH. Nie zapomnij o przełączeniu użytkownika na 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

Ustaw LD_LIBRARY_PATH

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

Uruchom ponownie klaster, aby wprowadzić zmiany.

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

Jesteś teraz gotowy do stworzenia języka.

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

postgres=# create LANGUAGE plperlu;
CREATE LANGUAGE

Metoda 2 (Instalując najnowszą wersję ActivePerl)

Krok 1:
Po zainstalowaniu ActivePerl ustaw 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

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

Krok 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

Opublikuj swoje komentarze.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak monitorować wydajność PostgreSQL 12 za pomocą OmniDB — część 1

  2. Czysty sposób na korzystanie z funkcji okna postgresql w django ORM?

  3. Napraw „BŁĄD:kolumna „colname” nie istnieje” w PostgreSQL podczas korzystania z UNION, EXCEPT lub INTERSECT

  4. PostgreSQL:Wybierz dane z podobnym do pola znacznika czasu

  5. Używanie aktualnego czasu w UTC jako wartości domyślnej w PostgreSQL