Comment installer la bibliothèque libSDL_image-1.2.so.0 requise pour exécuter Dwarf Fortress?

16

J'ai téléchargé Dwarf Fortress et je crois avoir collecté tous les fichiers requis. Cependant, lorsque je clique sur le fichier df, il me demande certaines choses, je clique sur "Exécuter" et rien ne se passe. Le jeu ne s'ouvre tout simplement pas.

J'utilise Ubuntu 12.04 avec Gnome 3 sur 64 bits. Si je pouvais ouvrir le jeu, je suis sûr que je pourrais faire face aux autres problèmes qui pourraient survenir.

Je suis assez nouveau sur Ubuntu et je n'ai pas utilisé Linux depuis 2009.

Il y a très probablement des fichiers que je ne connais pas.

L'exécuter dans le 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 existentiel
la source
La meilleure façon de diagnostiquer le problème est de l'exécuter sur un terminal. Au lieu de choisir "Exécuter" choisissez "Exécuter dans le terminal" ou ouvrez un terminal, utilisez cdpour passer au répertoire où se dftrouve et exécutez ./df. Mettez ensuite à jour votre question avec la sortie que vous obtenez.
Salem
nex @ ExistentialAndroid: ~ / Downloads / df_linux $ ./df ./libs/Dwarf_Fortress: erreur lors du chargement des bibliothèques partagées: libSDL_image-1.2.so.0: impossible d'ouvrir le fichier objet partagé: aucun fichier ou répertoire nex @ ExistentialAndroid: ~ / Téléchargements / df_linux $ Le seul problème est que j'ai apparemment libSDL_image-1.2.so.0 installé, au moins la chose Ubuntu Software Center me dit qu'il est installé.
Existential Android

Réponses:

16

Il semble que le jeu ne trouve pas de bibliothèques SDL. En utilisant apt-filele package que j'obtiens (le 12.10) qui prévoit que les bibliothèques sont 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

Vous devez donc d'abord vérifier que le package est réellement installé. Si c'est le cas, le programme a besoin de la version 32 bits ou bien il a besoin de la version 64 bits mais ne peut pas le trouver.

Pour installer la version 32 bits:

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

Si cela ne résout toujours pas le problème, vous pouvez essayer d'exécuter le jeu en utilisant LD_DEBUG=libs ./df. Cela produira beaucoup d'informations qui pourraient aider à détecter pourquoi il ne peut pas trouver cette bibliothèque. Jetez également un œil au README.linuxfichier dans le dossier Dwarf Fortress et vérifiez si toutes les conditions sont remplies.

Salem
la source
1
J'ai fait comme vous l'avez suggéré, j'ai eu une autre erreur, j'ai donc fait à peu près la même chose, mais j'ai découvert comment installer ce qu'il demandait, et j'ai trouvé ceci: libglu1-mesa, mais cela n'a pas fonctionné, j'ai donc essayé ia32-libs. Cela a installé beaucoup de choses, mais maintenant DF fonctionne. Merci.
Android existentiel
Cette réponse a également fonctionné pour le jeu Onlink (qui avait besoin de la version 32 bits)
Kyborek
15

Sur mes bits Ubuntu, j'avais 3 packages à installer en 32 bits pour 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

En plus des trois ci-dessus, au moins sur Ubuntu 14.04, vous avez besoin de celui-ci:

sudo apt-get install libglu1-mesa:i386
Tonioooooo
la source
l'exécution de DF sur ubuntu 16.04 nécessite également l'installation de ces quatre.
7yl4r du
6

Aucun des outils existants ne fonctionnait pour moi sur Ubuntu 16.04, mais cela a:

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

La source

Nick Zinger
la source
J'en avais également besoin le 16.04, pour corriger l'erreur d'origine. Mais j'ai une nouvelle erreur pour une libGLU.so.1lib.
Kenny Evitt
Ce sont tout ce dont j'avais besoin pour exécuter DF sur Ubuntu 17.10
shmup
Peut confirmer que cela ainsi que la réponse de Tonioooo conduisent à une installation DF fonctionnelle le 18.04
JDL
J'ai essayé plusieurs autres réponses, mais c'est la seule qui a fonctionné pour moi.
Hatefiend
1

J'avais également besoin de cela sur une boîte 16.04:

sudo apt-get install libglu1-mesa

Donc, tous ensemble:

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
la source