Não é possível instalar o gstreamer-ffmpeg de 32 bits normalmente, a biblioteca não pode encontrar outras bibliotecas de 32 bits

4

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?

    
por Carlito 14.02.2013 / 23:40

1 resposta

1

Tente:

ldconfig -p | grep lib32

Se você não vir nenhuma saída, isso ocorre porque o cache do vinculador (leia o primeiro parágrafo de man ldconfig e sobre a opção -p ) não faz referência a / usr / lib32. Eu verifiquei um sistema 12.04 do Ubuntu e que não está lá por padrão. Você pode adicioná-lo a: /etc/ld.so.conf.d/libc.conf , que pode conter apenas /usr/local/lib . Execute apenas ldconfig e, em seguida, o comando -p acima. Você deve ver as coisas em / usr / lib32; Agora, tente o seu ldd no gstreamer lib de 32 bits novamente.

    
por 15.02.2013 / 00:38