Debian Wheezy 64비트에서 32비트 애플리케이션 실행: 라이브러리 누락

Debian Wheezy 64비트에서 32비트 애플리케이션 실행: 라이브러리 누락

Debian Wheezy 64비트에서 Aquaria 게임을 플레이하고 싶습니다. 설치는 순조롭게 진행되었으나 게임을 플레이하려고 하면 다음 오류가 발생합니다.

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

32비트 호환성을 추가했는데 입력 결과가 다음과 같기 dpkg --add-architecture i386때문에 필요한 라이브러리가 시스템에 존재한다고 생각합니다 .locate libasound_module_conf_pulse.so

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

그리고 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

그러나 데비안은 이를 무시하는 것 같습니다. Aquaria를 플레이하려면 어떻게 해야 하나요?

편집 1: ldd 수족관

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)

답변1

32비트 라이브러리( /usr/lib/x86_64-linux-gnu64비트 라이브러리 포함)가 누락된 것 같습니다. 이제 라이브러리에 어떤 패키지가 필요한지 알아 보겠습니다.

$ 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

따라서 다음 패키지의 32비트 버전이 필요합니다.

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

일반적으로 32비트 라이브러리를 설치하기 전에 아키텍처를 다음 i386에 추가해야 합니다 dpkg.

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

고쳐 쓰다

위의 방법으로 문제가 해결되지 않았고 libGL.so.1출력에서 ldd​​Aquaria가 필요한 라이브러리를 모두 볼 수 있는 것으로 보이므로 Google에서 libGL.so.1오류 메시지를 검색했는데 두 가지가 나타났습니다. 다음 2가지 해결 방법을 순서대로 시도해 보세요.

  1. 설명대로여기심볼릭 링크를 사용해 보세요 libGL.so.1:

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

    제가 링크한 답변의 경로를 데비안 전용으로 수정했습니다.

  2. 답변여기libgl1-mesa-glx:i386(이미 수행한) 플러스 libgl1-mesa-dri:i386(다음에 시도해 볼 것을 권장함)를 설치하는 것이 좋습니다 .

업데이트: 마침내 효과가 있었던 것

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/

관련 정보