PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 27/09/2017 18:06:55

duple
Membre

Installation extension PLJAVA dans POSTGRESQL9.4

Bonjour,

Nous essayons d'installer l'extension pljava sur une base dans Postgresql 9.4 sur linux. Mais nous restons bloquer avec ERROR:  could not load library "/opt/pljava/lib_pdf_tools_pg94/pljava.so": libjvm.so: cannot open shared object file: No such file or directory.
Plus précisement, si je fais: ldd pljava.so
Cela renvoie:
ldd: warning: you do not have execution permission for `./pljava.so'
        linux-vdso.so.1 =>  (0x00007fff6d9af000)
        libjvm.so => not found
        libecpg.so.6 => /usr/pgsql-9.4/lib/libecpg.so.6 (0x00007f333f07e000)
        libpgtypes.so.3 => /usr/pgsql-9.4/lib/libpgtypes.so.3 (0x00007f333ee6d000)
        libpq.so.5 => /usr/pgsql-9.4/lib/libpq.so.5 (0x00007f333ec3e000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f333e934000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f333e632000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f333e41c000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f333e05a000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f333de3e000)
        libssl.so.10 => /lib64/libssl.so.10 (0x00007f333dbd0000)
        libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f333d7e5000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f333d597000)
        libldap_r-2.4.so.2 => /lib64/libldap_r-2.4.so.2 (0x00007f333d33b000)
        /lib64/ld-linux-x86-64.so.2 (0x000055f95eaf0000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f333d053000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f333ce4f000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f333cc1d000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f333ca18000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f333c802000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f333c5f3000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f333c3ee000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f333c1d4000)
        liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f333bfc5000)
        libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f333bda7000)
        libssl3.so => /lib64/libssl3.so (0x00007f333bb5b000)
        libsmime3.so => /lib64/libsmime3.so (0x00007f333b934000)
        libnss3.so => /lib64/libnss3.so (0x00007f333b609000)
        libnssutil3.so => /lib64/libnssutil3.so (0x00007f333b3dc000)
        libplds4.so => /lib64/libplds4.so (0x00007f333b1d8000)
        libplc4.so => /lib64/libplc4.so (0x00007f333afd2000)
        libnspr4.so => /lib64/libnspr4.so (0x00007f333ad94000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f333ab6c000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f333a935000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f333a72c000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f333a4cb000)
        libfreebl3.so => /lib64/libfreebl3.so (0x00007f333a2c8000)

ce qui est interessant ici : libjvm.so => not found
J'ai déjà essayé avec de pointer avec LD_LIBRARY_PATH en faisant:
LD_LIBRARY_PATH=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64/jre/lib/amd64/server/libjvm.so
export LD_LIBRARY_PATH
Mais le fait est que cela renvoie toujours le même erreur avec ldd pljava.so


Demande de l'aide please ?

Je tiens à remarquer que lors de l'installation de pljava (linux), la base postgres possède bien l'extension de pljava avec le schema sqlj , mais quand on veut installer l'extension dans une autre base , c'est là que le problème se montre.

Quelqu'un peut aider svp ?

Hors ligne

#2 28/09/2017 16:28:07

dverite
Membre

Re : Installation extension PLJAVA dans POSTGRESQL9.4

LD_LIBRARY_PATH est une liste de répertoires, pas une liste de fichiers.

Si libjvm.so est dans
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64/jre/lib/amd64/server
c'est cette valeur qu'il faut mettre dans LD_LIBRARY_PATH

Si ça ne fonctionne toujours pas, vérifier aussi que cette variable est bien dans l'environnement du serveur postgres quand il démarre.

Hors ligne

#3 29/09/2017 11:10:18

duple
Membre

Re : Installation extension PLJAVA dans POSTGRESQL9.4

Merci pour cette réponse, j'ai modifié LD_LIBRARY_PATH tel que :
bash-4.2$ export LD_LIBRARY_PATH=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64/jre/lib/amd64/server/:$LD_LIBRARY_PATH
Et avec ldd pljava.so, à mon avi çà renvoie bien le résultat attendu:
bash-4.2$ ldd pljava.so
        linux-vdso.so.1 =>  (0x00007ffe5a3eb000)
        libjvm.so => /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64/jre/lib/amd64/server/libjvm.so (0x00007f012faae000)
        libecpg.so.6 => /usr/pgsql-9.4/lib/libecpg.so.6 (0x00007f012f78c000)
        libpgtypes.so.3 => /usr/pgsql-9.4/lib/libpgtypes.so.3 (0x00007f012f57b000)
        libpq.so.5 => /usr/pgsql-9.4/lib/libpq.so.5 (0x00007f012f34c000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f012f042000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f012ed40000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f012eb2a000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f012e768000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f012e564000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f012e348000)
        libssl.so.10 => /lib64/libssl.so.10 (0x00007f012e0d9000)
        libcrypto.so.10 => /lib64/libcrypto.so.10 (0x00007f012dcef000)
        libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f012daa1000)
        libldap_r-2.4.so.2 => /lib64/libldap_r-2.4.so.2 (0x00007f012d844000)
        /lib64/ld-linux-x86-64.so.2 (0x000056316b320000)
        libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f012d55d000)
        libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f012d358000)
        libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f012d126000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f012cf10000)
        libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f012cd00000)
        libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f012cafc000)
        libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f012c8e2000)
        liblber-2.4.so.2 => /lib64/liblber-2.4.so.2 (0x00007f012c6d2000)
        libsasl2.so.3 => /lib64/libsasl2.so.3 (0x00007f012c4b5000)
        libssl3.so => /lib64/libssl3.so (0x00007f012c269000)
        libsmime3.so => /lib64/libsmime3.so (0x00007f012c041000)
        libnss3.so => /lib64/libnss3.so (0x00007f012bd17000)
        libnssutil3.so => /lib64/libnssutil3.so (0x00007f012baea000)
        libplds4.so => /lib64/libplds4.so (0x00007f012b8e5000)
        libplc4.so => /lib64/libplc4.so (0x00007f012b6e0000)
        libnspr4.so => /lib64/libnspr4.so (0x00007f012b4a2000)
        libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f012b27a000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007f012b043000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f012ae3a000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f012abd9000)
        libfreebl3.so => /lib64/libfreebl3.so (0x00007f012a9d6000)

En outre, j'ai rajouté des config dans postgresql.conf tel que :
dynamic_library_path = '$libdir:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64-debug/jre/lib/amd64/server/'
pljava.classpath='/opt/pljava/lib_pdf_tools_pg94/pljava.jar'
pljava.vmoptions = '-Xmx1500M'

Mais même avec tout ce la je rencontre encore un message d'erreur lors du lancement de l'installation:
\i /opt/pljava/lib_pdf_tools_pg94/pljava_install.sql
BEGIN
CREATE SCHEMA
GRANT
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:4: ERROR:  could not access file "pljava": No such file or directory
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:6: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:8: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:10: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:13: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:13: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:15: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:15: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:17: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:19: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:20: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:22: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:22: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:24: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:26: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:28: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:30: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:31: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:33: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:35: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:37: ERROR:  current transaction is aborted, commands ignored until end of transaction block
psql:/opt/pljava/lib_pdf_tools_pg94/pljava_install.sql:39: ERROR:  current transaction is aborted, commands ignored until end of transaction block
ROLLBACK

Sauriez vous d'où pourrait provenir l'erreur suivant: ERROR:  could not access file "pljava": No such file or directory

Hors ligne

#4 29/09/2017 13:32:14

dverite
Membre

Re : Installation extension PLJAVA dans POSTGRESQL9.4

Je n'ai pas d'expérience personnelle là dessus mais ceux qui ont eu le même message d'erreur ont l'air de dire que:

- il faut que java soit dans le $PATH

- il faut que pljava.so (et peut-être pljava.jar s'il y en a un) soit dans le répertoire $libdir de postgresql, au même endroit que les autres extensions (trouvable par la commande shell "pg_config --pkglibdir" si nécessaire)

Hors ligne

#5 29/09/2017 15:54:56

duple
Membre

Re : Installation extension PLJAVA dans POSTGRESQL9.4

Merci pour ta réponse.
Le problème fut résolu.
Premièrement, il fallait bien paramétrer le fichier postgresql.conf. Pour notre part, j'ai utilisé les même classpath avec celui de l'install,donc:
pljava.classpath='/usr/pgsql-9.4/share/pljava/pljava-1.6.0-SNAPSHOT.jar'

Puis sur la même console, lancer tout simplement les commandes:
SET pljava.libjvm_location='/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-2.b11.el7_3.x86_64/jre/lib/amd64/server/libjvm.so';
create extension pljava;

Et c'est bon.
Remarque, on a pas eu besoin de lancer la commande> \i /opt/pljava/lib_pdf_tools_pg94/pljava_install.sql
Juste "create extension pljava;" et cela a créé automatiquement l'extension pljava avec le schéma sqlj.


Esperons que cela peux aussi aider les autres qui rencontrent le même problème.

Hors ligne

#6 01/10/2017 14:30:57

Re : Installation extension PLJAVA dans POSTGRESQL9.4

Bonjour,
je suis nouveau dans le forum et spécialiste des SIG dans mon pays le Cameroun.
En effet, il y a quelques, j'ai suivi un cour sur Postgre / Postgis et j'ai dû installé sur mes deux machines desktop et laptop. Puis lors de l’opérationnalisation de la base de données de mon projet, je me suis rendu compte que pgadmin3 ne fonctionnait pas très bien avec mon Qgis, alors j'ai dû le désinstaller pour le réinstaller.
Seulement, lors de la réinstallation sur mon système, un message apparaît m'empêchant de poursuivre.
Je suis en windows 8.1 64bits et je ne voudrais pas avoir à formater mon windows pour le réinstaller.

C'est ce message qui apparaît lors de la tentative de réinstallation de postgre: "prerunscript.command.line.error".

S'il vous plaît, quelqu'un peut-il m'aider à résoudre ce problème?

Je vous en serais reconnaissant.

Georges Patrick MANDENG

Hors ligne

#7 03/10/2017 09:24:19

duple
Membre

Re : Installation extension PLJAVA dans POSTGRESQL9.4

Bonjour,
L'idéal est de créer un nouveau topic sur ce sujet. Les gens pourraient mieux vous répondre.
Pour ma part désolé mais j'ai pas encore rencontré le problème. En googlant, il parle de modifier un paramètre dans le registre mais je ne sais pas si çà règlera ou pas le problème. Mais déjà essayez quand même d'executer l'installation en mode administrateur.

Hors ligne

Pied de page des forums