Установите PL/Java в Unix с помощью Postgres Ver. 9.2+
Я изо всех сил пытался установить PL/Java на Postgres (9.2,9.3 или 9.4) на OpenSuse, Mageia или Manjaro... Я не люблю жаловаться, но документация на PL/Java ужасна. И я уже 2 недели гуглял помощь по установке, с небольшим прогрессом...
Кто-нибудь знает, как завершить эту установку? Если да, то не могли бы вы просветить мир этим невысказанным секретом!
Вот общая форма:
- Установите Oracle JRE/JDK
- Установить PostgreSQL
- Установите зависимости PL/Java
- Используйте Maven для упаковки PL/Java
- Попробуйте установить 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, он волшебным образом заработал.