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

Mac*_*cha 14 server 10.04 vps

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

我已经安装:

  • 诅咒
  • 诅咒
  • libsdl
  • libsdl-image
  • libopenal1

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

但是,即使在我接近 dfterm 之前,它也无法正常运行。它只是显示一个空白屏幕。什么可能导致这种情况?有没有我错过的依赖?我应该在配置中更改其他内容吗?

由于它是一台服务器,有一个很好的机会,如果有丢失的依赖,这件事情的开发者去“当然,每个人都有”,并没有刻意去列表。

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

Bry*_*yce 10

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

...
(Dwarf_Fortress:5346): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
Segmentation fault
Run Code Online (Sandbox Code Playgroud)

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

相反,使用 Xvfb,这是一个“假”虚拟 X。您需要安装 xvfb 和它想要的任何依赖项(可能是 xorg-server-core 和一堆其他可能未安装在 Ubuntu Server 上的东西)。

像这样启动假的 xserver:

 $ Xvfb :1 -screen 0 1024x768x16 &
Run Code Online (Sandbox Code Playgroud)

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

$ export DISPLAY=:1
$ ./df
Run Code Online (Sandbox Code Playgroud)

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