Error al cargar bibliotecas compartidas: libopenal.so.1 (Juego 'pacapong' en Ubuntu 14.10)

11

Descargué el juego pacapong para Linux e intenté ejecutar el ejecutable, lo que da como resultado el error:

$ ./runner 

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

Obviamente, existe la necesidad de cargar libopenal.so.1:

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

NEEDED libopenal.so.1

Hay libopenal.so.1acostarse /usr/lib/x86_64-linux-gnuy puedo hacer:

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

...

No ejecutaré este ejecutable (./runner) como root (solo en caso de que este problema pueda estar relacionado con derechos insuficientes, lo que no estoy asumiendo).

Entonces, ¿qué podría intentar más?

de facto
fuente

Respuestas:

12

El error se debe a que este es un juego de 32 bits que está intentando ejecutar en Linux de 64 bits. Trabajé a través de los errores buscando en Google los mensajes de error para descubrir qué paquetes me faltaban. Terminé instalando los siguientes paquetes para ejecutar el juego:

sudo apt-get install libxxf86vm1:i386 libglu1-mesa:i386 libopenal1:i386 libssl1.0.0:i386
BennyMcBenBen
fuente
¿Podría explicar qué hace la instalación de estos paquetes y cómo resuelve los problemas?
Michael Lindman
Gracias por su respuesta, resuelve el problema. Allí piensas saber todo sobre el sistema, bueno, y en realidad lo sabes, pero no piensas en eso ...;)
de facto
Esta. GOG agrupa juegos vinculados con Linux de 32 bits (ugggh, por qué), por lo que si tiene una máquina de 64 bits, debe tener AMBAS bibliotecas OpenGL / etc para las versiones de 64 y 32 bits. Es muy confuso porque te dice que te faltan bibliotecas que sabes que tienes.
Katastic Voyage
0

Para el futuro, ejecutar ldd en ./runner le dirá las bibliotecas que requiere, si faltan, Y si son i386 o 64 bits.

$ ldd en ./runner

/ undertale / game $ 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 => no encontrado

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)

Tenga en cuenta que todavía me falta xrandr para i386. Entonces esto no va a funcionar todavía.

$ ./runner

./runner: error al cargar bibliotecas compartidas:> libXrandr.so.2: no se puede abrir el archivo de objeto compartido: No existe tal archivo o directorio

Viaje Katastic
fuente