Linux VPSでテキストモード(ncurses)でDwarf Fortressを実行するにはどうすればよいですか?


14

Linux VPSにDwarf Fortressをインストールして、dftermで使用しました。Ubuntu 10.04 Server x86-32を実行しています。私はすべての依存関係があることをかなり確信しています:

私はインストールしました:

  • ncurses
  • ncursesw
  • libsdl
  • libsdl-image
  • libgtk
  • libglu
  • libopenal1

サウンドをオフにしないと、すぐにセグメンテーション違反が発生し、表示モードをテキストに設定しました。構成に他の変更は加えていません。

ただし、dftermに近づく前でも、正しく動作しません。空白の画面を表示するだけです。これは何が原因ですか?逃した依存関係はありますか?構成で変更する必要がある他のものはありますか?

サーバーであることを考えると、依存関係が欠落している場合、開発者が「確かに、誰もがそれを持っている」ので、リストに記載しなかった可能性があります。

他のncursesアプリケーション(vim、irssiが使用していると思いますか?)は正常に動作します。


私はもともとゲームでこれを尋ねたが、人々はここにお願いするが提案:gaming.stackexchange.com/questions/4716/...
抹茶

ええ、なんて面白いアイデアでしょう。ゲームが何かをしようとしているかどうかわかりますか?別の端末から「top」を実行し、CPUを使用しているかどうかを確認します。
ニコラスナイト

回答:


10

Xをオフにして通常のUbuntuインストールでdfを実行することで、セグメンテーション違反を再現できました。

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

問題は、このゲームが機能するGLドライバーを利用できることを期待していることだと思います。そのためには、Xを実行する必要があります。しかし、VPSにはXがありません!

代わりに、「偽の」仮想XであるXvfbを使用します。xvfbおよび必要な依存関係(おそらくxorg-server-coreおよびUbuntu Serverにインストールされない可能性のある他のもの)をインストールする必要があります。

次のように偽のxserverを起動します。

 $ Xvfb :1 -screen 0 1024x768x16 &

次に、DISPLAY変数がポイントされていることを確認します。

$ export DISPLAY=:1
$ ./df

サウンドを無効にしてTEXTモードで実行する必要もありましたが、Xは実行されず、この方法で動作しました。私はそれがあなたのために働くことを望みます。


セグメンテーション違反はなくなりましたが、実行すると「フォールバック:libncursesが開かれ、出力が壊れる可能性があります。シンボルが見つかりません:waddnwstr。」が表示され、Ctrl-Xで終了できますが、完全に混乱しますsshセッション。(幅を80 inc。プロンプトではなく80+プロンプトにします)。これが私が得た最も近い答えなので、期限が切れる前にとにかく賞金を差し上げますが、この新しい問題も解決できることを願っています。
マチャ

右、そこにシンボリックリンクがありませんでした。それを修正しました。グレーの出力のみが表示されるようになりました(端末の黒ではなく、異なるグレーの色)。
マチャ

そのシンボルが見つからないというエラーが発生し、lib32ncursesw5-devとlib32ncursesw5(64ビット版)をインストールすると解決しました。
ブライス

32ビットを使用しています。シンボルが見つからないというエラーのために、/ usr / lib / libncursesw.so-> /lib/libncursesw.so.5のシンボリックリンクを作成する必要がありました。
マチャ

1

DF WikiでこのDFTermの記事を見ましたか?上記にリストされていないように見えるいくつかの依存関係をリストします。...


これらの依存関係は、dftermをコンパイルすることです。実行されないのはドワーフ要塞です。
マチャ

1

ldd共有オブジェクトが欠落しているかどうかを確認するために使用できます。

たとえば、次のようなもの:

ldd /usr/local/bin/df

lddが「見つかりません」と表示するものはすべて欠落しています。

また、ゲームフォルダーにすべての* .soファイル(lddがある場合)を確認する必要があります。次のコマンドを使用して、*。soファイルを見つけることができます。 find . -iname '*.so' -type f


実行されないのは、dftermではなく、Dwarf Fortressそのものです。
マチャ

次に、その実行可能ファイルでlddを使用します。プログラムがわからないため、プログラムの名前がわかりません。それはは/ usr / local / binフォルダにある場合、私もわからない...
LassePoulsen

lddは「動的実行可能ファイルではありません」と表示します。
マチャ

ああ、2つあります。1つはもう1つを実行するだけです。不足している共有オブジェクトとは何ですか?
マチャ

lddが「見つかりません」としてリストするすべてが欠落している;)
LassePoulsen

1

init.txtを編集する必要があります。の設定を探して[PRINT_MODE:2D]変更します[PRINT_MODE:TEXT]

おそらく[SOUND:NO]同様に変更したいでしょう。

ただし、画面またはtmuxの内部で実行しない限り、80x24でのみ実行されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.