web-dev-qa-db-fra.com

Comment puis-je exécuter Dwarf Fortress en mode texte (ncurses) sur mon VPS Linux?

J'ai installé Dwarf Fortress sur mon VPS Linux à utiliser avec dfterm. Il exécute Ubuntu 10.04 Server x86-32. Je suis assez certain d'avoir toutes les dépendances:

J'ai installé:

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

Je devais éteindre le son ou il se figerait instantanément, et je réglerais le mode d'affichage sur texte. Je n'ai apporté aucun autre changement à la configuration.

Cependant, même avant que j'approche dfterm, cela ne fonctionnera pas correctement. Il affiche simplement un écran vide. Qu'est-ce qui peut causer cela? Y a-t-il une dépendance que j'ai manquée? Y a-t-il autre chose que j'aurais dû changer dans la configuration?

Étant donné que c'est un serveur, il y a de fortes chances que s'il y a une dépendance manquante, c'est quelque chose que les développeurs disent "Bien sûr, tout le monde a ça" et ne s'est pas donné la peine de le lister.

Les autres applications ncurses (vim, irssi use, je pense?) Fonctionnent bien.

14
Macha

J'ai été capable de recréer la segfaulting en exécutant df sur une installation normale d'Ubuntu avec X désactivé.

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

Je soupçonne que le problème est que ce jeu s’attend à disposer d’un pilote fonctionnel GL. Et pour cela, vous devez exécuter X. Mais un VPS n'a pas X!

Utilisez plutôt Xvfb, qui est un "faux" virtuel. Vous devrez installer xvfb et toutes les dépendances qu’il souhaite (probablement xorg-server-core et un tas d’autres éléments qui ne sont peut-être pas installés sur Ubuntu Server).

Démarrez le faux serveur x comme ceci:

 $ Xvfb :1 -screen 0 1024x768x16 &

Ensuite, assurez-vous que votre variable DISPLAY est pointée dessus:

$ export DISPLAY=:1
$ ./df

J'avais également besoin de désactiver le son et de l'exécuter en mode TEXT, mais cela fonctionnait de cette manière, sans X en cours d'exécution. J'espère que cela fonctionne pour vous.

10
Bryce

Avez-vous vu cet article de DFTerm sur le Wiki DF? Il énumère quelques dépendances que vous ne semblez pas avoir énumérées ci-dessus ....

1
Rob Cowell

Vous pouvez essayer d'utiliser ldd pour voir s'il manque un objet partagé.

Par exemple, quelque chose comme:

ldd /usr/local/bin/df

Tout ce que ldd a répertorié comme "non trouvé" est manquant.

Vous devriez également essayer de regarder tous les fichiers * .so (avec ldd) le cas échéant dans le dossier du jeu. Vous pouvez trouver les fichiers * .so en utilisant cette commande: find . -iname '*.so' -type f

1
LassePoulsen

Vous devez éditer votre init.txt. Recherchez un paramètre pour [PRINT_MODE:2D] et remplacez-le par [PRINT_MODE:TEXT]

Vous voudrez probablement passer à [SOUND:NO] également.

Vous ne fonctionnerez qu'en 80x24 à moins que vous ne couriez dans screen ou tmux.

1
slacy