如何安装运行Dwarf Fortress所需的libSDL_image-1.2.so.0库文件?

我已经下载了Dwarf Fortress,并且我相信我已经收集到了所有所需的文件。然而,当我点击df文件时,它会询问我一些东西,我点击“运行”,但什么都没有发生。游戏根本就不会打开。
我正在运行64位的Ubuntu 12.04,使用Gnome 3。如果我能够让游戏打开,我相信我可以处理可能出现的其他问题。
我对Ubuntu还比较新手,自2009年以来我就没有使用过Linux。
很可能有一些我不知道的文件。
在终端中运行它:
$ ./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 

诊断问题的最佳方法是在终端上运行它。不要选择“运行”,而是选择“在终端中运行”或者打开一个终端,使用cd命令切换到df所在的目录,并运行./df。然后将你得到的输出更新到你的问题中。 - Salem
nex@ExistentialAndroid:/Downloads/df_linux$ ./df ./libs/Dwarf_Fortress: 加载共享库时出错:libSDL_image-1.2.so.0:无法打开共享对象文件:没有那个文件或目录 nex@ExistentialAndroid:/Downloads/df_linux$唯一的问题是,我显然已经安装了libSDL_image-1.2.so.0,至少Ubuntu软件中心告诉我已经安装了。 - Existential Android
4个回答

似乎游戏找不到一些SDL库。使用apt-file命令,我在12.10版本上找到了提供这些库的软件包,它是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

所以你首先应该验证该软件包是否真的已安装。如果是的话,要么程序需要32位版本,要么确实需要64位版本但找不到它。
要安装32位版本:
sudo apt-get install libsdl-image1.2:i386

如果这仍然无法解决问题,您可以尝试使用LD_DEBUG=libs ./df来运行游戏。这将输出大量信息,有助于检测为什么找不到该库。此外,请查看Dwarf Fortress文件夹中的README.linux文件,并检查是否满足所有要求。

1我按照你的建议做了,又遇到了一个错误,所以我基本上做了同样的事情,但找到了如何安装它所要求的内容,我找到了这个:libglu1-mesa,但那并没有起作用,所以我尝试了ia32-libs。那个安装了很多东西,但现在DF可以运行了。谢谢。 - Existential Android
这个答案也适用于Onlink游戏(需要32位版本)。 - Kyborek

在我的Ubuntu系统上,我需要安装3个32位的软件包来运行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

除了上述三个之外,在Ubuntu 14.04上至少还需要这一个:
sudo apt-get install libglu1-mesa:i386

在Ubuntu 16.04上运行DF还需要安装这四个组件。 - 7yl4r

没有一个现有的在Ubuntu 16.04上适用于我,但是这个可以:
sudo apt-get install libsdl1.2debian libsdl-image1.2 libsdl-ttf2.0-0

来源


1我在16.04版本上也需要这个来修复原始错误。但是现在出现了一个新的错误,涉及到libGLU.so.1库。 - Kenny Evitt
这些就是我在Ubuntu 17.10上运行DF所需要的全部。 - shmup
可以确认,这个和Tonioooo的回答一起,可以在18.04上实现一个正常运行的DF安装。 - JDL
尝试了多个其他答案,但这是唯一一个对我有效的。 - Hatefiend
@KennyEvitt 从“libs”目录中删除libstdc++.so.6。来源:12 - M Imam Pratama

我也需要在一个16.04的盒子上安装这个。
sudo apt-get install libglu1-mesa

所以,总的来说:

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