Estou no Ubuntu 12.04 64 bits e estou tentando fazer um jogo (GTA SA) funcionar no wine, mas ele continua travando. Depois de ler os logs de erro, parece que eu precisava de algumas versões de 32 bits do gstreamer, provavelmente para reproduzir o vídeo de introdução. Eu já tenho ia32-libs
, porque eu li em algum lugar eu vou precisar disso para executar o software de 32 bits. Eu tentei pela primeira vez:
sudo apt-get install gstreamer0.10-ffmpeg:i386
Que retorna:
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
E também depende de libavformat, libpostproc e libswscale com aproximadamente o mesmo erro. Então continuei procurando e encontrei uma ferramenta legal, getlibs, que permite instalar bibliotecas de 32 bits. Eu acho que apenas os coloca no diretório /usr/lib32
, o que provavelmente não é a melhor maneira de fazer isso, mas eu tentei mesmo assim.
Então eu instalei as bibliotecas de 32 bits com getlibs das quais o vinho estava reclamando. Agora eu tenho erros diferentes, basicamente a biblioteca de 32 bits está referenciando outras bibliotecas que agora não são encontradas. Por exemplo, um dos erros diz:
Failed to load plugin '/usr/lib32/gstreamer-0.10/libgstffmpeg.so': libavformat.so.53: cannot open shared object file: No such file or directory
Então, meu pensamento inicial estava correto, já que agora usa a versão de 32 bits. Agora eu estava tentando descobrir com o ldd para ver onde a biblioteca faz referência a outras bibliotecas:
# 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
Então, de fato, o libgstffmpeg.so não consegue encontrar o libavformat.so correto. Eu tentei instalar a versão de 32 bits do libavformat com getlibs novamente, que colocou em /usr/lib32/i386-linux-gnu/libavformat.so
. Mas o ldd ainda me diz que não consegue encontrar o libavformat. Então eu tentei criar um link simbólico no mesmo diretório, mas o nomeei libavformat.so.53
e até fiz um symlink para '/usr/lib/i386-linux-gnu/libavformat.so.53', mas ambos me deram o mesmo erro .
Agora, tenho certeza de que essa não é a maneira correta de ir, mas não sabia o jeito certo de fazê-lo. Então, qual é a maneira correta de fazer isso, ou o gstreamer0.10-ffmpeg simplesmente não possui suporte para 32 ou multilib? E como eu posso descobrir qual é o diretório, onde a libgstffmpeg (ou qualquer biblioteca que eu acho) checa suas bibliotecas de 32 bits a que está fazendo referência?