Executando um aplicativo de 32 bits no Debian Wheezy 64 bits: bibliotecas ausentes

5

Eu quero jogar o jogo Aquaria em um Debian Wheezy 64 bits. A instalação correu bem, mas ao tentar jogar o jogo eu recebo esses erros:

ALSA lib conf.c:3314:(snd_config_hooks_call) Cannot open shared library libasound_module_conf_pulse.so
ALSA lib control.c:951:(snd_ctl_open_noupdate) Invalid CTL hw:0
AL lib: alsa.c:1000: control open (0): No such file or directory
Message: SDL_GL_LoadLibrary Error: Failed loading libGL.so.1

Eu adicionei compatibilidade de 32 bits com dpkg --add-architecture i386 e acho que as bibliotecas necessárias estão presentes no sistema desde a digitação de locate libasound_module_conf_pulse.so yields:

/usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_conf_pulse.so

e locate libGL.so.1 :

/etc/alternatives/glx--libGL.so.1-x86_64-linux-gnu
/usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1
/usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1.2
/usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1
/usr/lib/mesa-diverted/x86_64-linux-gnu/libGL.so.1.2
/usr/lib/x86_64-linux-gnu/libGL.so.1
/usr/lib/x86_64-linux-gnu/fglrx/fglrx-libGL.so.1.2
/usr/lib/x86_64-linux-gnu/fglrx/libGL.so.1

No entanto, parece que o Debian está ignorando-os. O que posso fazer para jogar Aquaria?

EDIT 1: ldd aquaria

linux-gate.so.1 =>  (0xf77e1000)
libSDL-1.2.so.0 => /opt/Aquaria/./libSDL-1.2.so.0 (0xf7748000)
libopenal.so.1 => /opt/Aquaria/./libopenal.so.1 (0xf76fa000)
libstdc++.so.6 => /opt/Aquaria/./libstdc++.so.6 (0xf760d000)
libm.so.6 => /lib/i386-linux-gnu/i686/cmov/libm.so.6 (0xf75c3000)
libgcc_s.so.1 => /opt/Aquaria/./libgcc_s.so.1 (0xf75b8000)
libc.so.6 => /lib/i386-linux-gnu/i686/cmov/libc.so.6 (0xf7455000)
libdl.so.2 => /lib/i386-linux-gnu/i686/cmov/libdl.so.2 (0xf7451000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0xf7437000)
librt.so.1 => /lib/i386-linux-gnu/i686/cmov/librt.so.1 (0xf742e000)
/lib/ld-linux.so.2 (0xf77e2000)
    
por Kio Marv 20.07.2013 / 21:16

1 resposta

8

Parece que você está perdendo as bibliotecas de 32 bits ( /usr/lib/x86_64-linux-gnu contém bibliotecas de 64 bits). Agora, vamos descobrir quais pacotes você precisa para suas bibliotecas:

$ dpkg -S /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_conf_pulse.so
libasound2-plugins:amd64: /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_conf_pulse.so
$ dpkg -S /usr/lib/x86_64-linux-gnu/libGL.so.1
libgl1-mesa-glx:amd64: /usr/lib/x86_64-linux-gnu/libGL.so.1

Você precisa de versões de 32 bits desses pacotes:

# apt-get install libasound2-plugins:i386 libgl1-mesa-glx:i386

Em geral, antes de instalar qualquer biblioteca de 32 bits, você deve adicionar a arquitetura i386 a dpkg :

# dpkg --add-architecture i386
# apt-get update

Atualizar

Como o acima não resolveu o problema libGL.so.1 e parece que da sua saída ldd que Aquaria pode ver todas as bibliotecas necessárias, eu pesquisei a mensagem de erro libGL.so.1 e duas coisas surgiram. Por favor, tente as seguintes 2 soluções em ordem:

  1. Como explicado aqui tente o symlinking libGL.so.1 :

    ln -sv /usr/lib/i386-linux-gnu/libGL.so.1.2 /usr/lib/libGL.so.1
    

    Note que eu modifiquei os caminhos da resposta que eu criei para que eles sejam relevantes para o Debian.

  2. A resposta aqui sugere que você precisa instalar libgl1-mesa-glx:i386 (que você já fez) mais libgl1-mesa-dri:i386 (que é o que estou sugerindo que você tente em seguida).

Atualização: o que finalmente funcionou

apt-get purge libgl1-mesa-glx:i386 
apt-get install libgl1-mesa-glx:i386 
ln -s /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1 /usr/lib/i386-linux-gnu/
    
por 21.07.2013 / 00:32