ОШИБКА: не удалось загрузить библиотеку libperl.so, PostgreSQL пытается CREATE EXTENSION plperlu

Я хочу использовать язык Perl в функции postgres.

Я пытаюсь:

CREATE EXTENSION plperlu

... через pgAdmin 4 подключен к postgres 10, и я получаю эту ошибку:

ERROR:  could not load library "/var/lib/pgsql10/lib/postgresql/plperl.so": libperl.so: cannot open shared object file: No such file or directory
SQL state: XX000

Я ищу библиотеку:

find -name libperl.so

... и я вижу это в этих местах:

./usr/lib/perl5/5.18.2/i586-linux-thread-multi/CORE/libperl.so
./usr/lib/perl5/5.18.2/x86_64-linux-thread-multi/CORE/libperl.so

Итак, я пришел к выводу, что он уже находится на моем дистрибутиве сервера, но не там, где ищет postgres, поэтому я ищу и нахожу эту ссылку:

https://www.postgresql.org/message-id/D960CB61B694CF459DCFB4B0128514C207B2C9DC%40exadv11.host.magwien.gv.at

... и я решаю сделать это (по ссылке выше, но у меня есть разные пути): "- Добавьте каталог, содержащий libperl.so, в /etc/ld.so.conf и запустите"ldconfig"от имени пользователя root. Затем запустите сервер PostgreSQL."

Итак, я нахожу файл конфигурации:

find -name ld.so.conf

И получите этот путь:

./etc/ld.so.conf

... и отредактируйте файл:

vi ./etc/ld.so.conf

... и добавьте этот путь:

./usr/lib/perl5/5.18.2/x86_64-linux-thread-multi/CORE/

... загрузить новый конфиг:

ldconfig

... перезапустите pg:

systemctl restart postgresql-10.service

... выполнить этот запрос:

CREATE EXTENSION plperlu;

... и получить ту же ошибку:

ERROR:  could not load library "/var/lib/pgsql10/lib/postgresql/plperl.so": libperl.so: cannot open shared object file: No such file or directory
    SQL state: XX000

... когда я заменяю предыдущий путь и добавляю этот путь:

/usr/lib/perl5/5.18.2/x86_64-linux-thread-multi/CORE

..разработать ld.so.conf, Я получил:

 ERROR:  could not load library "/var/lib/pgsql10/lib/postgresql/plperl.so": /var/lib/pgsql10/lib/postgresql/plperl.so: undefined symbol: Perl_xs_handshake
SQL state: XX000

... немного другая ошибка, но я не знаю, ближе я или дальше.

Как мне указать PostgreSQL на правильную библиотеку, чтобы я мог использовать perl?

Я имею:

  • PostgreSQL 10.0 на x86_64-pc-linux-gnu, скомпилированный gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18), 64-битный
  • pgAdmin 4 2.0
  • 64-битный виртуальный сервер SUSE Linux Enterprise 12

ОБНОВЛЕНИЕ 1:

Я получил помощь из общего списка рассылки postgres: существующий perl, вероятно, был собран с использованием более старой ОС (что, я думаю, у меня есть), поэтому не работает (рукопожатие) с текущей версией postgres (v10). Я надеюсь обновить мою ОС, которая обновит версию perl для моего дистрибутива ОС на сервере, которая должна быть версией perl, поддерживаемой postgres v10. Я постараюсь вернуться с подтверждением / ответом после обновления нашей ОС. Любые дополнительные цвета или возможные причины приветствуются.

0 ответов

Другие вопросы по тегам