it-swarm-pt.tech

Como posso executar o Dwarf Fortress no modo de texto (ncurses) no meu Linux VPS?

Eu instalei o Dwarf Fortress no meu Linux VPS para usar com o dfterm. Está executando o Ubuntu 10.04 Server x86-32. Tenho quase certeza de que tenho todas as dependências:

Eu instalei:

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

Eu tive que desligar o som ou ele será imediatamente segfault, e eu definir o modo de exibição para texto. Eu não fiz outras alterações na configuração.

No entanto, mesmo antes de eu chegar perto do dfterm, ele não funcionará corretamente. Apenas exibe uma tela em branco. O que poderia estar causando isso? Existe uma dependência que eu perdi? Há algo mais que eu deveria ter mudado na configuração?

Dado que é um servidor, há uma boa chance de que, se houver uma dependência ausente, é algo que os desenvolvedores foram "Claro, todo mundo tem que" e não se preocupou em listar.

Outras aplicações ncurses (vim, irssi use, eu acho?) Funcionam bem.

14
Macha

Eu era capaz de recriar o segfaulting executando o df em uma instalação normal do Ubuntu com o X desativado.

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

Eu suspeito que o problema é que este jogo espera ter um driver GL em funcionamento disponível. E para isso você precisa do X correndo. Mas um VPS não tem X!

Em vez disso, use o Xvfb, que é um "falso" virtual X. Você precisará instalar o xvfb e quaisquer dependências que desejar (provavelmente o xorg-server-core e um monte de outras coisas que podem não estar instaladas no Ubuntu Server).

Inicie o xserver falso assim:

 $ Xvfb :1 -screen 0 1024x768x16 &

Em seguida, verifique se sua variável DISPLAY está apontada para ela:

$ export DISPLAY=:1
$ ./df

Eu também precisava desabilitar o som e rodar no modo TEXT, mas funcionava assim, sem o X rodando. Espero que funcione para você.

10
Bryce

Você viu este artigo do DFTerm no DF Wiki? Ele lista algumas dependências que você não parece ter listado acima ...

1
Rob Cowell

Você pode tentar usar ldd para ver se há um objeto compartilhado faltando.

Por exemplo, algo como:

ldd /usr/local/bin/df

Tudo o que o ldd lista como "não encontrado" está faltando.

Você também deve tentar olhar para todos os arquivos * .so (com ldd), se houver algum na pasta do jogo. Você pode encontrar os arquivos * .so usando este comando: find . -iname '*.so' -type f

1
LassePoulsen

Você precisa editar o seu init.txt. Procure uma configuração para [PRINT_MODE:2D] e altere para [PRINT_MODE:TEXT]

Você provavelmente quer mudar para [SOUND:NO] também.

Você só vai rodar em 80x24, a menos que você rode dentro da tela ou do tmux.

1
slacy