Запуск 32-разрядного приложения в Debian Wheezy 64 бит: Отсутствующие библиотеки

Я хочу играть в игру Aquaria в Debian Wheezy 64 бит. Установка прошла нормально, но, пытаясь сыграть в игру, я получаю следующие ошибки:

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 

Однако, похоже, Debian игнорирует их. Что я могу сделать, чтобы играть в 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) 

  • Сообщение «Не найдено» при запуске 32-битного двоичного файла в 64-битной системе
  • Вино не может обрабатывать системные шрифты
  • E: Не удается найти пакет libssl-dev при попытке загрузить 32-разрядный OpenSSL на 64-битной системе
  • Как убедить APT, что кросс-аркальный пакет установлен вручную?
  • Различные версии одного и того же lib нарушили мой менеджер пакетов
  • Наличие nVidia OpenGL 32-битного драйвера на 64-битной системе Debian в многоархиве
  • OpenJDK7 JRE 32-бит на Debian Stretch 64-bit
  • Должен ли я беспокоиться о установке 32-разрядных библиотек KDE?
  • One Solution collect form web for “Запуск 32-разрядного приложения в Debian Wheezy 64 бит: Отсутствующие библиотеки”

    Кажется, вам не хватает 32-битных библиотек ( /usr/lib/x86_64-linux-gnu содержит 64-разрядные библиотеки). Теперь давайте выясним, какие пакеты вам нужны для ваших библиотек:

     $ 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 может видеть все необходимые библиотеки, я googled сообщение об ошибке libGL.so.1 и появились две вещи. Пожалуйста, попробуйте следующие 2 решения:

    1. Как объяснено здесь, попробуйте symlinking libGL.so.1 :

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

      Обратите внимание, что я изменил пути из ответа, с которым я связан, чтобы они были релевантны Debian.

    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/ 
    Interesting Posts

    Яркий указатель мыши при использовании мыши с высокой чувствительностью с высоким «постоянным замедлением» в xinput

    Как я могу отбросить некоторые исходящие пакеты?

    Почему добавление не-VLAN-интерфейса к мосту нарушает VLAN-интерфейсы?

    Пользовательское приветствие при входе в систему через ssh

    Ошибки и местные

    Мониторинг с использованием rsyslog

    Большинство UNIX-подобных файловых систем, которые можно монтировать под окнами и Mac OS X

    ubuntu не позволяет мне войти в систему для моего пользователя, как я могу это исправить?

    Как мне grep и сортировать с помощью этого конкретного шаблона?

    Как я могу безопасно подключиться к своему ящику Linux через Интернет?

    clang отказывается устанавливать через apt

    Как я могу добавить nohup в набор команд bash?

    Как получить абсолютный путь от использования команды find unix

    Определите, нажата ли кнопка мыши, затем вызовите скрипт или команду

    Как определяется статус возврата переменной назначения?

    Linux и Unix - лучшая ОС в мире.