it-swarm.it

Come posso eseguire Dwarf Fortress in modalità testo (ncurses) sul mio VPS Linux?

Ho installato Dwarf Fortress sul mio VPS Linux da usare con dfterm. Funziona con Ubuntu 10.04 Server x86-32. Sono abbastanza certo di avere tutte le dipendenze:

Ho installato:

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

Ho dovuto disattivare l'audio o si interrompe immediatamente e ho impostato la modalità di visualizzazione su testo. Non ho apportato altre modifiche alla configurazione.

Tuttavia, anche prima di avvicinarmi a dfterm, non funzionerà correttamente. Visualizza solo uno schermo vuoto. Che cosa potrebbe causare questo? C'è una dipendenza che mi è sfuggita? C'è qualcos'altro che avrei dovuto cambiare nella configurazione?

Dato che si tratta di un server, ci sono buone probabilità che se c'è una dipendenza mancante, è qualcosa che gli sviluppatori hanno fatto "Certo, tutti hanno quello" e non si sono preoccupati di elencarli.

Altre applicazioni ncurses (vim, irssi lo usano, penso?) Funzionano bene.

14
Macha

Sono stato in grado di ricreare il segfaulting eseguendo df su una normale installazione di Ubuntu con X disattivato.

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

Ho il sospetto che il problema sia che questo gioco prevede di disporre di un driver GL funzionante. E per questo hai bisogno di X in esecuzione. Ma un VPS non ha X!

Invece, usa Xvfb, che è una X "finta" virtuale. Dovrai installare xvfb e qualsiasi dipendenza voglia (probabilmente xorg-server-core e un sacco di altre cose che potrebbero non essere installate su Ubuntu Server).

Avvia il falso xserver in questo modo:

 $ Xvfb :1 -screen 0 1024x768x16 &

Quindi assicurati che la tua variabile DISPLAY sia puntata su di essa:

$ export DISPLAY=:1
$ ./df

Avevo anche bisogno di disabilitare l'audio ed eseguire in modalità TESTO, ma ha funzionato in questo modo, senza X in esecuzione. Spero che funzioni per te.

10
Bryce

Hai visto questo articolo DFTerm sul DF Wiki? Elenca alcune dipendenze che non sembrano aver elencato sopra ...

1
Rob Cowell

Potresti provare a usare ldd per vedere se manca un oggetto condiviso.

Ad esempio, qualcosa del tipo:

ldd /usr/local/bin/df

Manca tutto ciò che ldd elenca come "non trovato".

Dovresti anche provare a guardare tutti i file * .so (con ldd) se presenti nella cartella del gioco. Puoi trovare i file * .so usando questo comando: find . -iname '*.so' -type f

1
LassePoulsen

Devi modificare il tuo init.txt. Cerca un'impostazione per [PRINT_MODE:2D] e modificala in [PRINT_MODE:TEXT]

Probabilmente vuoi anche cambiare in [SOUND:NO].

Funzionerai solo a 80x24 a meno che non corri all'interno dello schermo o di tmux.

1
slacy