¿Cómo instalo la biblioteca libSDL_image-1.2.so.0 requerida para ejecutar Dwarf Fortress?

16

He descargado Dwarf Fortress y creo que he recopilado todos los archivos necesarios. Sin embargo, cuando hago clic en el archivo df, me pregunta algunas cosas, hago clic en "Ejecutar" y no sucede nada. El juego simplemente no se abre en absoluto.

Estoy ejecutando Ubuntu 12.04 con Gnome 3 en 64 bits. Si pudiera abrir el juego, estoy seguro de que podría resolver los otros problemas que puedan surgir.

Soy bastante nuevo en Ubuntu y no he usado Linux desde 2009.

Lo más probable es que haya algunos archivos que no conozco.

Ejecutándolo en la terminal:

$ ./df
./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_image-1.2.so.0:
    cannot open shared object file: No such file or directory 
Android existencial
fuente
La mejor manera de diagnosticar el problema es ejecutarlo en un terminal. En lugar de elegir "Ejecutar", elija "Ejecutar en terminal" o abrir un terminal, use cdpara cambiar al directorio donde dfestá y ejecutar ./df. Luego actualice su pregunta con la salida que obtenga.
Salem
nex @ ExistentialAndroid: ~ / Downloads / df_linux $ ./df ./libs/Dwarf_Fortress: error al cargar bibliotecas compartidas: libSDL_image-1.2.so.0: no se puede abrir el archivo de objeto compartido: No existe dicho archivo o directorio nex @ ExistentialAndroid: ~ / Downloads / df_linux $ El único problema es que aparentemente tengo libSDL_image-1.2.so.0 instalado, al menos lo del Centro de software de Ubuntu me dice que está instalado.
Android existencial

Respuestas:

16

Parece que el juego no puede encontrar algunas bibliotecas SDL. Usando apt-fileel paquete que obtengo (en 12.10) que proporciona que las bibliotecas es libsdl-image1.2:

➜  apt-file search  libSDL_image-1.2.so.0
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0.8.4

Por lo tanto, primero debe verificar que el paquete esté realmente instalado. Si es así, o bien el programa necesita la versión de 32 bits o, de hecho, necesita la versión de 64 bits, pero no puede encontrarla.

Para instalar la versión de 32 bits:

sudo apt-get install libsdl-image1.2:i386

Si esto aún no resuelve el problema, puedes intentar ejecutar el juego usando LD_DEBUG=libs ./df. Esto generará mucha información que podría ayudar a detectar por qué no puede encontrar esa biblioteca. Además, eche un vistazo al README.linuxarchivo en la carpeta Dwarf Fortress y verifique si se cumplen todos los requisitos.

Salem
fuente
1
Hice lo que sugirió, obtuve otro error, así que hice casi lo mismo, pero descubrí cómo instalar lo que pedía, y encontré esto: libglu1-mesa, pero eso no funcionó, así que probé ia32-libs. Eso instaló muchas cosas, pero ahora DF funciona. Gracias.
Android existencial
Esta respuesta también funcionó para el juego Onlink (que necesitaba la versión de 32 bits)
Kyborek
15

En mis bits de Ubuntu, tenía que instalar 3 paquetes en 32 bits para DwarfFortress:

sudo apt-get install libsdl-image1.2:i386
sudo apt-get install libgtk2.0-0:i386
sudo apt-get install libsdl-ttf2.0-0:i386

Además de los tres anteriores, al menos en ubuntu 14.04, necesita este:

sudo apt-get install libglu1-mesa:i386
Tonioooooo
fuente
ejecutar DF ​​en ubuntu 16.04 también requiere la instalación de estos cuatro.
7yl4r
6

Ninguno de los existentes funcionó para mí en Ubuntu 16.04, pero esto sí:

sudo apt-get install libsdl1.2debian libsdl-image1.2 libsdl-ttf2.0-0

Fuente

Nick Zinger
fuente
Yo también necesitaba esto en 16.04, para corregir el error original. Pero tengo un nuevo error para una libGLU.so.1lib.
Kenny Evitt
Esto es todo lo que necesitaba para ejecutar DF ​​en Ubuntu 17.10
shmup
Puedo confirmar que esto, junto con la respuesta de Tonioooo, condujo a una instalación de DF en funcionamiento el 18.04
JDL
Intenté muchas otras respuestas, pero esta es la única que funcionó para mí.
Hatefiend
1

Yo también necesitaba esto en un cuadro 16.04:

sudo apt-get install libglu1-mesa

Entonces, todos juntos:

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

sudo apt-get install libsdl-image1.2:i386 \
                     libsdl-ttf2.0-0:i386 \
                     libgtk2.0-0:i386 \
                     libglu1-mesa:i386 \
                     openssl:i386

sudo apt-get install libsdl1.2debian

sudo apt-get install libsdl1.2debian \
                     libsdl-image1.2 \
                     libsdl-ttf2.0-0

sudo apt-get install libglu1-mesa
Kenny Evitt
fuente