Error while loading shared libraries

toribash

error while loading shared libraries: liblua5.1.so.0: cannot open shared object file: No such file or directory

Cette erreur arrive parfois lorsqu'on installe un programme autrement que par les dépôts, ce qui m'est arrivé lorsque j'ai voulu tester le jeu toribash qui a l'air assez sympa.

Après avoir téléchargé le rpm, je l'installe puis lance toribash dans un terminal.

[edouard ~]$ toribash
/usr/share/games/toribash/toribash.bin: error while loading shared libraries: liblua5.1.so.0: cannot open shared object file: No such file or directory

Flute, je pensais que le rpm aurait résolu ce genre de problèmes. Je cherche alors si cette librairie est disponible sur mon système.

[edouard ~]$ locate liblua
/usr/lib/liblua-5.1.so
/usr/lib/vlc/misc/liblua_plugin.so

Ah oui, elle est bien là. Mais pourquoi ne la trouve-il pas ? Il se trouve en fait que le nom est un petit peu différent, d'où la confusion.

On peut alors résoudre le problème par deux moyens:

Utiliser ldconfig :

(merci Ludo et Christophe-Marie)

La commande ldconfig, lancée en root, va créer intelligemment des liens symbolique pour les librairies. Si ça ne résoud pas le problème, vous pouvez aussi tester la méthode a la mano du samouraï linux :

À la main :

Il suffit de créer en root dans le répertoire /usr/lib un lien symbolique vers la bonne librairie, lien qui portera le nom de la lib que cherche le programme

[root /usr/lib]$ ln -s liblua-5.1.so liblua5.1.so.0

soit en fait ln -s cible nom_du_lien


puis on lance le programme en utilisateur normal

[edouard ~]$ toribash

ca marche !

Si on veut faire le lien à un autre endroit que dans /usr/lib, on peut, mais il faudra à ce moment là spécifier à toribash où aller chercher les librairies en faisant

[edouard ~]$ env LD_LIBRARY_PATH=/repertoire/du/lien toribash

Pour que cette astuce marche il faut bien entendu que la librairie soit présente sur le système, si tel n'est pas le cas installez là d'abord avec votre gestionnaire de paquets.

Vus : 503
Publié par Edouard : 53