如何在Linux VPS上以文本模式(ncurses)运行Dwarf Fortress?


14

我在Linux VPS上安装了Dwarf Fortress,以与dfterm一起使用。它正在运行Ubuntu 10.04 Server x86-32。我相当确定我具有所有依赖项:

我已经安装了:

  • 诅咒
  • ncursesw
  • libsdl
  • libsdl图像
  • libgtk
  • libglu
  • libopenal1

我必须关闭声音,否则它将立即出现段错误,并将显示模式设置为文本。我没有对配置进行任何其他更改。

但是,即使在我接近dfterm之前,它也无法正常运行。它只是显示一个空白屏幕。是什么原因造成的?我错过了依赖性吗?我还应该在配置中更改其他内容吗?

鉴于它是服务器,因此很有可能如果缺少依赖关系,那么开发人员就会选择“当然,每个人都拥有该东西 ”而不必费心列出。

其他ncurses应用程序(vim,irssi使用它,我认为呢?)可以正常工作。


我最初是在游戏中问这个问题的,但那里的人建议在这里问:gaming.stackexchange.com/questions/4716/…–
Macha

嗯,这是一个有趣的想法。你能说出游戏是否在尝试做任何事情吗?从另一个终端运行“ top”,看看它是否在使用任何CPU。
尼古拉斯·奈特

Answers:


10

通过在关闭X的常规Ubuntu安装上运行df,我能够重新创建segfaulting。

...
(Dwarf_Fortress:5346): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
Segmentation fault

我怀疑问题在于该游戏期望具有可用的GL驱动程序。为此,您需要运行X。但是VPS没有X!

取而代之的是使用Xvfb,它是一个“伪”虚拟X。您需要安装xvfb及其所需的任何依赖项(可能是xorg-server-core以及许多其他可能未在Ubuntu Server上安装的东西)。

像这样启动伪造的xserver:

 $ Xvfb :1 -screen 0 1024x768x16 &

然后确保您的DISPLAY变量指向它:

$ export DISPLAY=:1
$ ./df

我还需要禁用声音并在TEXT模式下运行,但这种方式无法运行X。我希望这个对你有用。


segfault消失了,但是当我运行它时,我得到“ Fallback:打开的libncurses,输出可能被破坏。找不到符号:waddnwstr。”,并且没有给出更多输出,可以用Ctrl-X退出但完全弄乱了ssh会话。(使宽度为80+提示,而不是80 inc。提示)。这是我得到的最接近的答案,因此无论如何我都会给您悬赏,但是我希望这个新问题也能解决。
Macha

是的,我在那里缺少一个符号链接。固定的。现在,我得到的只是灰色输出(不是终端的黑色,而是不同的灰色)。
Macha 2010年

我收到未找到的符号错误,然后安装lib32ncursesw5-dev和lib32ncursesw5(我使用的是64位)解决了它。
布莱斯

我正在使用32位。我必须为/usr/lib/libncursesw.so-> /lib/libncursesw.so.5创建一个符号链接,以查找未找到的符号错误。
Macha

1

您是否在DF Wiki上看到此DFTerm文章?它列出了您似乎未在上面列出的一些依赖项。...


这些依赖关系是我已经完成的dfterm的编译。是矮人要塞不会运行。
Macha

1

您可以尝试ldd查看是否缺少共享对象。

例如,类似:

ldd /usr/local/bin/df

ldd列出为“未找到”的所有内容均丢失。

您还应该尝试查看游戏文件夹中的所有* .so文件(带有ldd)。您可以使用以下命令找到* .so文件: find . -iname '*.so' -type f


不会运行的是Dwarf Fortress本身,而不是dfterm。
Macha

然后在该可执行文件上使用ldd,我不知道该程序,所以不知道它的名称。我什至不知道它是否在/ usr / local / bin文件夹中……
LassePoulsen 2010年

ldd给出:“不是动态可执行文件。”
Macha

哦,有两个,一个只运行另一个。我如何知道缺少的共享库?
Macha

ldd列为“未找到”的所有内容都丢失了;)
LassePoulsen,2010年

1

您需要编辑init.txt。寻找设定[PRINT_MODE:2D]并将其更改为[PRINT_MODE:TEXT]

您可能还想更改[SOUND:NO]为。

除非您在屏幕或tmux内部运行,否则您只能以80x24的分辨率运行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.