Impossibile trovare il file oggetto condiviso aperto libjli.so - nessun file o directory


8

Su RHEL5 a 64 bit con Java 1.6.0 aggiornamento 16, root può eseguire correttamente un programma Java ma un utente non può perché libjli.sopresumibilmente non può essere trovato. SELinux è spento e l'ambiente è lo stesso prima dell'esecuzione del programma. Ho provato a inserire libjli.soil LD_LIBRARY_PATHma non fa differenza.

Come posso correggere questo errore?

Risposte:


9

La prima possibilità che mi viene in mente è che libjli.soè leggibile solo dalla radice. Quindi passo uno:

ls -l $(locate libjli.so)

Se si trova in una posizione dispari (non in /usr/libo /lib), crea il file /etc/ld.so.conf.d/java.confcontenente il percorso della directory contenente libjli.soed esegui /sbin/ldconfigcome root.

Per ulteriori informazioni sulla risoluzione dei problemi, eseguire questo comando, una volta come root e una volta come utente non root:

ldd java

In un mondo sano, l'output dei due sarebbe identico. In che modo differiscono dovrebbe dirti molto sul perché questo sta fallendo.


Ecco, avevo impostato LD_LIBRARY_PATH, pensavo che la configurazione di ldconfig sarebbe stata inutile. ldd java restituisce un percorso relativo contenente '..' per libjli, immagino che non abbia funzionato poiché i packager speravano in questo particolare client 16 FCS per l'aggiornamento 1.6 1.6 Java 1.6.0.
joeforker,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.