Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 14/02/2017, à 21:43

Kasimodo

Dépendances manquantes sur un jeu 32 bits

Bonjour à tous,

Je vais commencer par planter le décors en essayant de ne pas trop vous saouler.
Je suis depuis l'aube des temps sous Windows. J'avais tenter de passer sous Ubuntu il y a quelques années mais mes connaissances étant plus que limitées, j'ai lâché l'affaire.
Aujourd'hui je récidive !
Je viens donc d'installer Ubuntu 16.04 LTS 64 bits sur un SSD 120 Go que je n'utilisais pas. Je suis en train de le configurer pour essayer de retrouver mes petits (comparés à Windows) mais je me heurte à un problème de jeux !
Je tente de jouer à Tomb Raider qui semble être un jeu développé pour des environnements 32 bits. C'est une version Linux.

Malheureusement, à chaque fois que je tente de le lancer, j'ai un message d'erreur concernant des dépendances qui ne seraient pas installées.
Au début, il me manquait certaines libxxxx mais en parcourant Google, j'ai pu avancer. Ca fait 3 jours que je suis dessus. (On ne se moque pas !)
Bref... après avoir réussi à installer les 2 premières lib, je me heurtes à une 3ème. Et là me s recherches sont infructueuses. Tout ce que j'ai pu trouver sur le Net je l'ai testé mais rien n'y fait toujours le même message d'erreur.

kasi@kasi-Linux:/media/iso$ ./start.sh
/media/iso/bin/TombRaider: error while loading shared libraries: librtmp.so.0: cannot open shared object file: No such file or directory
kasi@kasi-Linux:/media/iso$ 

J'ai essayé de l'installer mais rien n'y fait !

sudo apt install librtmp1
sudo ln -s /usr/lib/x86_64-linux-gnu/librtmp.so /usr/lib/librtmp.so.0

Si quelqu'un a une idée qui pourrait me sortir de là, ...

Merci d'avance.

Hors ligne

#2 Le 15/02/2017, à 01:02

abelthorne

Re : Dépendances manquantes sur un jeu 32 bits

Forcément : tu installes la bibli 64 bits et tu fais un lien pour la faire passer pour la version 32 bits. Ça ne risque pas de marcher : ça reste la version 64 bits de la bibli.

Commence par supprimer ton lien :

sudo rm /usr/lib/librtmp.so.0

puis installe le paquet mais en version 32 bits (sur une Ubuntu 64 bits, les paquets 32 bits sont différenciés par ":i386" à la fin) :

sudo apt install librtmp1:i386

Retente alors de lancer ton jeu. Si ça ne fonctionne pas mieux, donne le retour de :

ls /usr/lib/i386-linux-gnu | grep librtmp

Il faudra peut-être effectivement créer un lien symbolique s'il cherche une version précise de la bibli mais à partir du bon fichier.

EDIT : et accessoirement, le dossier pour les biblis 32 bits pour le système sous-jacent qui gère automatiquement les deux versions est théoriquement /usr/lib/i386-linux-gnu, pas /usr/lib.

Dernière modification par abelthorne (Le 15/02/2017, à 01:09)

Hors ligne

#3 Le 15/02/2017, à 09:09

Kasimodo

Re : Dépendances manquantes sur un jeu 32 bits

Bonjour,
Avant tout, merci de prendre le temps de te pencher sur mon cas.

Pour info, en ayant parcouru Google dans tous les sens, il me semble que j'avais aussi installé les Lib 32 bits mais bon dans le doute...
Concernant la 1ère commande visant à supprimer mon lien, j'ai un retour système me disant que le lien n'existe pas. Etonnant !

kasi@kasi-Linux:/media/iso$ sudo rm /usr/lib/librtmp.so.0
rm: impossible de supprimer '/usr/lib/librtmp.so.0': Aucun fichier ou dossier de ce type

J'ai ensuite installé la lib en version i386 :

kasi@kasi-Linux:/media/iso$ sudo apt install librtmp1:i386
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
librtmp1:i386 is already the newest version (2.4+20151223.gitfa8646d-1build1).
Les paquets suivants ont été installés automatiquement et ne sont plus nécessaires :
  libc6-dev:i386 libgmp-dev:i386 libgmpxx4ldbl:i386 libgnutls-openssl27:i386 libgnutlsxx28:i386 libp11-kit-dev:i386 libtasn1-6-dev:i386 linux-libc-dev:i386
  zlib1g-dev:i386
Veuillez utiliser « sudo apt autoremove » pour les supprimer.
0 mis à jour, 0 nouvellement installés, 0 à enlever et 4 non mis à jour.

Manifestement je l'avais déjà fait.

Le lancement du jeu capote de la même façon hmm

kasi@kasi-Linux:/media/iso$ ./start.sh
/media/iso/bin/TombRaider: error while loading shared libraries: librtmp.so.0: cannot open shared object file: No such file or directory

Enfin, voici le retour système de la commande GREP :

kasi@kasi-Linux:/media/iso$ ls /usr/lib/i386-linux-gnu | grep librtmp
librtmp.so.1

Par contre, partout, dans tous les tutos que j'ai pu lire concernant ce problème de lib non trouvée, ils parlent de dossier /usr/lib/x86_64-linux-gnu/librtmp.so.1
Les lib 32 bits ne devraient pas être dans ce dossier normalement ? (Ca c'est juste une question pour ma gouverne, histoire d'essayer de comprendre un peu. Oui, bon j'ai bien vu qu'il y avait "64" dans le nom mais bon big_smile )
Dans le doute, j'ai aussi fait un GREP dans ce dossier :

kasi@kasi-Linux:/media/iso$ ls /usr/lib/x86_64-linux-gnu | grep librtmp
librtmp.a
librtmp.so
librtmp.so.0
librtmp.so.1

Merci

EDIT : j'ai jouté un lien et du coup c'est bon ! Enfin pour cette lib, car maintenant il me dit qu'il m'en manque une autre.
Bref... j'ai jouté le lien suivant :

/media/iso/bin/TombRaider: error while loading shared libraries: librtmp.so.0: cannot open shared object file: No such file or directory
kasi@kasi-Linux:/media/iso$ sudo ln -s /usr/lib/i386-linux-gnu/librtmp.so.1 /usr/lib/i386-linux-gnu/librtmp.so.0
kasi@kasi-Linux:/media/iso$ ./start.sh
/media/iso/bin/TombRaider: error while loading shared libraries: libgconf-2.so.4: cannot open shared object file: No such file or directory

Je vais donc essayer de trouver les dépendances pour la lib en question et faire le lien vers ce dossier. (Euh.. si tu connais directement le nom du paquet à installer...)


EDIT 2 : bon j'ai trouvé le nom de la dépendance : libgconf-2-4 que j'ai installée.
Je n'ai pas eu besoin de faire de lien, le jeu se lance.. enfin !

En tout cas, un grand MERCI pour tes infos qui m'ont permis de comprendre un peu mieux comment le système fonctionne.
Je reviens vers vous en cas de problème.
PS : quand je pense aux nombres de conneries que j'ai faites et de trucs que j'ai pu installer sans trop comprendre ce que je faisais. J'ai bien dû pourrir mon système qui était tout propre jusque là hmm

Dernière modification par Kasimodo (Le 15/02/2017, à 09:45)

Hors ligne

#4 Le 15/02/2017, à 11:13

abelthorne

Re : Dépendances manquantes sur un jeu 32 bits

Les lib 32 bits ne devraient pas être dans ce dossier normalement ? (Ca c'est juste une question pour ma gouverne, histoire d'essayer de comprendre un peu. Oui, bon j'ai bien vu qu'il y avait "64" dans le nom mais bon big_smile )

Depuis la mise en place de multilib, qui permet d'installer à la fois des biblis en 32 et 64 bits pour que le système les trouve, il y a effectivement deux dossier séparés : sur Ubuntu, c'est /usr/lib/x86_64-linux-gnu et /usr/lib/i386-linux-gnu. Sachant qu'il y a aussi des tas d'autres dossiers pour stocker des biblis : /usr/lib32, /lib/, /lib/x86_64-linux-gnu et /lib/i386-linux-gnu (je suppose que ces deux derniers sont gérés par Multilib aussi), etc. Bref, c'est le foutoir. Je serais bien incapable de te dire comment, où et dans quel ordre le système va chercher quoi mais je peux au moins te dire que le dossier x86_64-linux-gnu est censé contenir des biblis 64 bits tandis que i386-linux-gnu contient les versions 32 bits. Quitte à installer des biblis ou faire des liens manuellement, autant le faire à l'endroit le plus approprié et éviter les problèmes.

PS : quand je pense aux nombres de conneries que j'ai faites et de trucs que j'ai pu installer sans trop comprendre ce que je faisais. J'ai bien dû pourrir mon système qui était tout propre jusque là hmm

Si tu retrouves les tutos que tu as suivis, on peut jeter un coup d'œil pour voir s'il y a des trucs à réparer.

Hors ligne

#5 Le 15/02/2017, à 12:14

soshy

Re : Dépendances manquantes sur un jeu 32 bits

C'est pas forcement une bonne solution de faire un lien. Meme si c'est certainement la solution la plus simple et qu'il y a des chances que ca fonctionne.

Le chiffre (ou la serie de chiffre) correspond a la version de la bibliotheque. Donc librtmp.so.0 et librtmp.so.1 sont deux versions majeur differentes avec potentiellement des changements dans les interfaces de programmation. En gros, quelque chose qui existe dans .0 n'existe peut etre plus dans .1. Du coup, ce que tu as fait, si tu as de la chance ca reste compatible, mais pas forcement. La vraie bonne solution serait soit de compiler la lib toi meme, soit de trouver le paquet plus ancien pour installer la lib en version 0 et esperer qu'il n'y ait pas de probleme de dependences.

Quant a savoir ou les bibliotheques partages sont recherchees, c'est configure dans le fichier /etc/ld.so.conf . Chez moi par exemple c'est une simple reference au contenu de tous les fichiers .conf se trouvant dans /etc/ld.so.conf.d/ . On y trouve par exemple:

$ cat /etc/ld.so.conf.d/x86_64-linux-gnu.conf
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu

Tu peux aussi voir partout ou le linker va chercher les bibliotheques partagees avec la commande

ldconfig -v 2>/dev/null | grep -v ^$'\t

Hors ligne

#6 Le 15/02/2017, à 16:00

Kasimodo

Re : Dépendances manquantes sur un jeu 32 bits

abelthorne a écrit :

Si tu retrouves les tutos que tu as suivis, on peut jeter un coup d'œil pour voir s'il y a des trucs à réparer.

Honnêtement, j'ai parcouru tellement de tutos que je serais incapable de dire lesquels j'ai appliqué et lesquels j'ai passé.
Pour l'instant, tout semble fonctionner à peu près normalement.
Le seul soucis que je rencontre mais qui était là depuis le début (avant même mes bidouillages) et qui consiste à m'empêcher de démarrer Ubuntu de temps en temps.
En fait j'ai 3 disques durs dans la machine en SATA et 1 lecteur CD. Un SSD sur lequel oeuvre Windows 10, un disque de DATA pour Windows et le SSD abritant Ubuntu. Ce dernier est dans un boitier extractible que je n'active que lorsque je veux booter sous Ubuntu.
De temps en temps donc, j'ai un message d'erreur d'Ubuntu, directement au boot, me précisant qu'il y a une erreur de lecture (ou d'écriture sur le disque 4 - HDD4). Si j'en crois GParted sous Ubuntu, le SDA4 abrite Windows 10. Ce disque est tout neuf et fonctionne parfaitement. Mais est-ce bien de ce disque qu'il s'agit, sachant de toutes façons que le SSD Ubuntu est également neuf puisque c'est celui qui était livré avec ma machine et que je n'ai quasiment pas utilisé.
Je l'ai testé par acquis de conscience, il n'a aucun problème non plus.
Bref... la seule façon de m'en sortir est d'éteindre la machine à l'arrache et de redémarrer, voire dans le pire des cas de démarrer sous Windows puis de redémarrer sous Ubuntu.
Rien de dramatique si ce n'est le temps perdu à chaque fois.
Pour info, j'ai installer la 16.04 en UEFI car la première fois, je l'avais mise en BIOS mais le système mettait plus de 2 minutes à démarrer. Sur un SSD accompagné d'un i7 4790 à 3.6 GHz, je trouvais ça un peu long. L'installation en UEFI semble avoir accélérer le mouvement... (?). Seulement quelques secondes, comme Windows.

Quoiqu'il en soit, ne te prends pas la tête outre mesure. Tes conseils pour mon vrai problème ont été précieux et je t'en remercie une nouvelle fois.

@soshy: merci pour ces nouvelles infos (nouvelles pour moi big_smile ).  Je note ça dans un coin de ma tête pour une prochaine référence.

Dernière modification par Kasimodo (Le 15/02/2017, à 16:03)

Hors ligne