Установите PL/Java в Unix с помощью Postgres Ver. 9.2+

Я изо всех сил пытался установить PL/Java на Postgres (9.2,9.3 или 9.4) на OpenSuse, Mageia или Manjaro... Я не люблю жаловаться, но документация на PL/Java ужасна. И я уже 2 недели гуглял помощь по установке, с небольшим прогрессом...

Кто-нибудь знает, как завершить эту установку? Если да, то не могли бы вы просветить мир этим невысказанным секретом!

Вот общая форма:

  1. Установите Oracle JRE/JDK
  2. Установить PostgreSQL
  3. Установите зависимости PL/Java
  4. Используйте Maven для упаковки PL/Java
  5. Попробуйте установить PL/Java, используя install.sql (+config config)

Шаг 1-3 хорошо документирован и говорит само за себя, 4 кажется прямым, но на шаге 5 я не могу добиться прогресса...

Чтобы установить / что было опробовано:

4 Переместите файлы pljava.jar и pljava.so (созданные из Maven) в какое-то место, например:

/usr/lib/postgresql

5.1 Создайте файл postgres.conf и поместите его в /etc/ld.so.conf.d/ с содержимым:

/usr/lib/jvm/jdk1.7.0_79/jre/lib
/usr/lib/jvm/jdk1.7.0_79/jre/lib/i386/server

5.2 Обновите файл postgresql.conf внутри /usr/share/postgres93/data/ со следующими дополнениями:

pljava.classpath = '/usr/lib/postgresql/pljava.jar'

5.3 Запустить скрипт install.sql для базы данных (скажем, postgres - поскольку он существует OOTB)

psql -d postgres -f /somelocation/install.sql

Из того небольшого количества информации, которое я могу найти, это должно быть все, что требуется, но я получаю следующую ошибку при выполнении install.sql.

psql:/home/pljava/install.sql:6: ERROR: could not access file "pljava": No such file or directory
psql:/home/pljava/install.sql:8: ERROR: function sqlj.java_call_handler() does not exist
psql:/home/pljava/install.sql:12: ERROR: could not access file "pljava": No such file or directory
psql:/home/pljava/install.sql:14: ERROR: function sqlj.javau_call_handler() does not exist
CREATE TABLE
GRANT
CREATE TABLE
GRANT
CREATE TABLE
GRANT
CREATE TABLE
GRANT
CREATE TABLE
GRANT
psql:/home/pljava/install.sql:59: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:63: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:67: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:71: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:75: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:79: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:83: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:87: ERROR: language "java" does not exist
psql:/home/pljava/install.sql:91: ERROR: language "java" does not exist

Есть идеи? Похоже, это может быть проблема classpath Java?

1 ответ

Решение

После некоторого времени проб и ошибок. Похоже, что с процессом, описанным выше, нет ничего плохого, за исключением расположения pljava.so и pljava.jar.

Я плохо предполагал, что / usr / lib / postgres достаточно хорошее местоположение, но это было не правильное местоположение. Вместо этого он должен находиться внутри директории lib! (что имеет смысл).

После того, как я переместил и pljava.so, и pljava.jar в каталог / usr / lib / postgresql / lib, он волшебным образом заработал.

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