Impossible de trouver le fichier d'objet partagé ouvert libjli.so - aucun fichier ou répertoire de ce type

8

Sur RHEL5 64 bits exécutant Java 1.6.0 mise à jour 16, root peut exécuter avec succès un programme Java mais un utilisateur ne peut pas car il est libjli.sosupposé introuvable. SELinux est désactivé et l'environnement est le même avant l'exécution du programme. Je l' ai essayé de mettre libjli.sodans la LD_LIBRARY_PATHmais il ne fait pas de différence.

Comment puis-je corriger cette erreur?

joeforker
la source

Réponses:

9

La première possibilité qui vient à l'esprit est qu'elle libjli.son'est lisible que par root. Donc, première étape:

ls -l $(locate libjli.so)

S'il se trouve dans un emplacement impair (pas dans /usr/libou /lib), créez le fichier /etc/ld.so.conf.d/java.confcontenant le chemin d'accès au répertoire contenant libjli.soet exécutez en /sbin/ldconfigtant que root.

Pour plus d'informations sur le dépannage, exécutez cette commande, une fois en tant qu'utilisateur root et une fois en tant qu'utilisateur non root:

ldd java

Dans un monde sain, la sortie des deux serait identique. La façon dont ils diffèrent devrait vous en dire beaucoup sur les raisons de l'échec.

Insyte
la source
Sheesh, j'avais défini LD_LIBRARY_PATH, je pensais que la conf de ldconfig serait infructueuse. ldd java renvoie un chemin relatif contenant «..» pour libjli, je suppose que cela n'a pas fonctionné comme les emballeurs l'espéraient pour ce client FCS Java 16.0 update 16 particulier.
joeforker