Je suis sur Ubuntu 12.04 64 bits et j'essaie de faire fonctionner un jeu (GTA SA) dans le vin, mais il n'arrête pas de planter. Après avoir lu les journaux d'erreurs, il semble que j'avais besoin de versions 32 bits de gstreamer, probablement pour lire la vidéo d'introduction. J'ai déjà ia32-libs
, car j'ai lu quelque part que j'en aurai besoin pour exécuter un logiciel 32 bits. J'ai d'abord essayé :
sudo apt-get install gstreamer0.10-ffmpeg:i386
Qui renvoie :
gstreamer0.10-ffmpeg:i386 : Depends: libavcodec53:i386 (>= 4:0.7.3-1) but it is not going to be installed or
libavcodec-extra-53:i386 (>= 4:0.7.3-1) but it is not going to be installed
Et cela dépend aussi de libavformat, libpostproc et libswscale avec à peu près la même erreur. J'ai donc continué à chercher et j'ai trouvé un bel outil, getlibs, qui permet d'installer des bibliothèques 32 bits. Je pense que cela les place simplement dans le /usr/lib32
répertoire, ce qui n'est probablement pas la meilleure façon de procéder, mais j'ai quand même essayé.
J'ai donc installé les bibliothèques 32 bits avec getlibs dont wine se plaignait. Maintenant, j'ai différentes erreurs, essentiellement la bibliothèque 32 bits fait référence à d'autres bibliothèques qu'elle ne peut plus trouver. Par exemple, l'une des erreurs indique :
Failed to load plugin '/usr/lib32/gstreamer-0.10/libgstffmpeg.so': libavformat.so.53: cannot open shared object file: No such file or directory
Donc, ma première pensée était correcte, car il utilise maintenant la version 32 bits. Maintenant, j'essayais de comprendre avec ldd pour voir où la bibliothèque référence d'autres bibliothèques :
# This one is fine
ldd /usr/lib/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => /usr/lib/x86_64-linux-gnu/libavformat.so.53 (0x00007f8314181000)
# This one isn't
ldd /usr/lib32/gstreamer-0.10/libgstffmpeg.so | grep avformat
libavformat.so.53 => not found
Donc en effet, libgstffmpeg.so ne peut pas trouver le bon libavformat.so. J'ai essayé d'installer à nouveau la version 32 bits de libavformat avec getlibs, qui l'a placée dans /usr/lib32/i386-linux-gnu/libavformat.so
. Mais ldd me dit toujours qu'il ne peut pas trouver libavformat. Ensuite, j'ai essayé de créer un lien symbolique dans le même répertoire mais je l'ai nommé libavformat.so.53
et même fait un lien symbolique vers `/usr/lib/i386-linux-gnu/libavformat.so.53′, mais les deux me donnent la même erreur.
Maintenant, je suis sûr que ce n'est vraiment pas la bonne façon de procéder, mais je ne connaissais pas la bonne façon de le faire. Alors, quelle est la bonne façon de procéder, ou est-ce que gstreamer0.10-ffmpeg n'a tout simplement pas de support 32 bits ou multilib ? Et comment puis-je savoir quel est le répertoire, où libgstffmpeg (ou n'importe quelle bibliothèque, je suppose) vérifie les bibliothèques 32 bits auxquelles il fait référence ?
En relation:Linux - Comment mettre sur liste noire un secteur de RAM défectueux correct selon l'indication d'erreur MemTest86 + ?Réponse acceptée :
Essayez :
ldconfig -p | grep lib32
Si vous ne voyez aucune sortie, c'est parce que le cache de l'éditeur de liens (lisez le premier paragraphe de man ldconfig
, et sur le -p
switch) ne fait pas référence à /usr/lib32. J'ai vérifié un système Ubuntu 12.04 et ce n'est pas là par défaut. Vous pouvez l'ajouter à :/etc/ld.so.conf.d/libc.conf
qui peut contenir juste /usr/local/lib
. Exécutez simplement ldconfig
, puis la commande -p d'en haut. Vous devriez voir les choses dans /usr/lib32 ; essayez à nouveau votre ldd sur la bibliothèque gstreamer 32 bits.