J'ai eu a installer une application développée en Java sur une version Red Hat Entreprise Linux 5.2 Server avec un JRE 1.5.0.17 et j'ai eu quelques difficultés à réaliser cette opération mais j'ai finalement réussi suite à quelques recherches (ceci doit être valable pour la majorité des distributions Linux).
Si vous avec ce type d'erreur dans une console lors de l'installation ou de l'execution d'une application java:
$ ./MonAppli
awk: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/bin/ls: error while loading shared libraries: librt.so.1: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
dirname: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
basename: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
grep: error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
/home/user1/soft-6.1-911/jre/bin/java: error while loading shared libraries: libpthread.so.0: cannot open shared object file: No such file or directory
La cause :
Sans rentrer dans le détail, ce problème survient lors d'une incompatibilité de l'installateur du JRE (Java Run-time Environment) avec certaines librairies système.
La solution :
La commande à effectuer va consister à afficher le contenu de MonAppli.bak, l'envoyer à la commande sed qui lui va mettre en commentaire (grâce au #) la ligne export LD_ASSUME_KERNEL.
export LD_ASSUME_KERNEL mets en place une variable d'environnement qui va spécifier la version du noyau à utiliser (2.4 ou 2.6).
Il faut lancer les commandes suivantes dans une console ou un terminal dans le même repertoire où vous avez extrait l'installateur du logiciel ou de son executable (remplacer MonAppli par le nom de votre logiciel):
$ cp MonAppli MonAppli.bak
$ cat MonAppli.bak | sed "s/export LD_ASSUME_KERNEL/#xport LD_ASSUME_KERNEL/" > MonAppli
Pensez à rendre votre fichier executable au cas ou:
$ chmod +x MonAppli
Et executez-le:
$ ./MonAppli
Suite à l'installation de votre application ou de son execution, si ça fonctionne, vous pouvez supprimer les fichiers .bak.
$ rm MonAppli.bak