Ошибка при загрузке общих библиотек: libopenal.so.1 (игра 'pacapong' в Ubuntu 14.10)

11

Я скачал игру pacapong для Linux и попытался запустить исполняемый файл, что привело к ошибке:

$ ./runner 

./runner: error while loading shared libraries: libopenal.so.1: 
cannot open shared object file: No such file or directory

Очевидно, есть необходимость загрузки libopenal.so.1:

$ objdump -p ./runner |grep libopenal.so.1

NEEDED libopenal.so.1

Там libopenal.so.1лежит /usr/lib/x86_64-linux-gnuи я могу сделать:

$ ldd libopenal.so.1
linux-vdso.so.1 =>  (0x00007fffcdbbb000)

...

Я не буду запускать этот исполняемый файл (./runner) от имени пользователя root (на случай, если эта проблема может быть связана с недостаточными правами, чего я не предполагаю).

Итак, что я мог попробовать еще?

де-факто
источник

Ответы:

12

Ошибка в том, что это 32-битная игра, которую вы пытаетесь запустить в 64-битной Linux. Я работал с ошибками, прибегая к сообщениям об ошибках, чтобы выяснить, какие пакеты мне не хватало. В итоге я установил следующие пакеты для запуска игры:

sudo apt-get install libxxf86vm1:i386 libglu1-mesa:i386 libopenal1:i386 libssl1.0.0:i386
BennyMcBenBen
источник
Не могли бы вы рассказать, что делает установка этих пакетов и как они решают проблемы?
Майкл Линдман
Спасибо за ваш ответ, это решает проблему. Там вы думаете, что знаете все о системе, ну и на самом деле вы знаете об этом, но вы не думаете об этом ...;)
де-факто
Это. GOG объединяет игры, связанные с 32-битным Linux (угу, почему), поэтому, если у вас 64-битный компьютер, вы должны иметь ОБА библиотеки OpenGL / etc для 64-битных и 32-битных версий. Это очень запутанно, потому что говорит о том, что вам не хватает библиотек, о которых вы знаете.
Katastic Voyage
0

В будущем запуск ldd на ./runner скажет вам, какие библиотеки ему нужны, если они отсутствуют, И если они i386 или 64-битные.

$ ldd on ./runner

/ предпринять / игра $ ldd ./runner

linux-gate.so.1 (0xf7798000)

libgtk3-nocsd.so.0 => /usr/lib/i386-linux-gnu/libgtk3-nocsd.so.0 (0xf7759000)

libstdc ++. so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75d3000)

...

libXrandr.so.2 => не найден

libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf6b41000)

libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6b3d000)

libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf6b36000)

Обратите внимание, я все еще скучаю по xrandr для i386. Так что это пока не сработает.

$ ./runner

./runner: ошибка при загрузке общих библиотек:> libXrandr.so.2: не удается открыть файл общих объектов: нет такого файла или каталога

Катастик Вояж
источник