Linux VPS에서 Dwarf Fortress를 텍스트 모드 (ncurses)로 실행하려면 어떻게해야합니까?


14

dfterm과 함께 사용하기 위해 Linux VPS에 Dwarf Fortress를 설치했습니다. Ubuntu 10.04 Server x86-32를 실행 중입니다. 나는 모든 의존성이 있다고 확신한다.

설치했습니다 :

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

나는 소리를 꺼야했다. 그렇지 않으면 그것은 즉시 segfault 할 것이다. 그리고 나는 디스플레이 모드를 텍스트로 설정했다. 설정을 변경하지 않았습니다.

그러나 dfterm 근처에 가기 전에도 제대로 실행되지 않습니다. 빈 화면 만 표시됩니다. 이 문제의 원인은 무엇입니까? 내가 놓친 의존성이 있습니까? 설정에서 변경해야 할 것이 있습니까?

그것이 서버라는 것을 감안할 때, 누락 된 의존성이있는 경우, 개발자가 "물론, 모든 사람들이 "를 가지고 목록에 귀찮게하지 않은 것일 수 있습니다.

다른 ncurses 응용 프로그램 (vim, irssi가 사용한다고 생각합니까?)이 잘 작동합니다.


나는 원래 게임을에이를 물었지만,이 사람들은 여기에 물어 제안 : gaming.stackexchange.com/questions/4716/...
마하

허, 정말 흥미로운 아이디어입니다. 게임이 무언가를 시도하고 있는지 알 수 있습니까? 다른 터미널에서 'top'을 실행하고 CPU를 사용하고 있는지 확인하십시오.
Nicholas Knight

답변:


10

X가 꺼진 상태에서 일반 우분투 설치에서 df를 실행하여 segfaulting을 다시 만들 수있었습니다.

...
(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 및 우분투 서버에 설치되지 않은 다른 것들)을 설치해야합니다.

다음과 같이 가짜 xserver를 시작하십시오.

 $ Xvfb :1 -screen 0 1024x768x16 &

그런 다음 DISPLAY 변수가 가리키는 지 확인하십시오.

$ export DISPLAY=:1
$ ./df

또한 사운드를 비활성화하고 TEXT 모드에서 실행해야했지만 X가 실행되지 않는 방식으로 작동했습니다. 나는 그것이 당신을 위해 작동하기를 바랍니다.


segfault가 사라졌지 만 실행하면 "폴백 : 열린 libncurses가 열리고 출력이 손상 될 수 있습니다. 기호를 찾을 수 없습니다 : waddnwstr."라는 메시지가 표시되며 더 이상 출력하지 않습니다. Ctrl-X를 사용하여 종료 할 수는 있지만 완전히 엉망이됩니다. ssh 세션. (프롬프트를 80 inc. 대신 너비 80+ 프롬프트로 만듭니다). 이것은 내가 얻은 가장 가까운 대답이므로 어쨌든 만료되기 전에 현상금을 제공하지만이 새로운 문제도 해결할 수 있기를 바랍니다.
Macha

오른쪽에 심볼릭 링크가 없습니다. 고쳤다. 이제 얻는 것은 회색 출력입니다 (터미널의 검은 색이 아니라 다른 회색 색상).
Macha

해당 기호를 찾을 수 없음 오류가 발생하여 lib32ncursesw5-dev 및 lib32ncursesw5 (64 비트)를 설치하면 문제가 해결되었습니다.
브라이스

32 비트를 사용하고 있습니다. 심볼을 찾을 수 없음 오류에 대해 /usr/lib/libncursesw.so-> /lib/libncursesw.so.5에 대한 심볼릭 링크를 만들어야했습니다.
Macha

1

당신은 본 적 이 DFTerm 기사 DF 위키를? 위에 나열되지 않은 것으로 보이는 일부 종속성을 나열합니다 ....


그 의존성은 내가 한 dfterm을 컴파일하는 것입니다. 달리지 않는 것은 드워프 요새입니다.
Macha

1

ldd공유 객체가 없는지 확인하는 데 사용할 수 있습니다.

예를 들면 다음과 같습니다.

ldd /usr/local/bin/df

ldd가 "찾을 수 없음"으로 표시 한 모든 항목이 없습니다.

또한 게임 폴더에있는 모든 * .so 파일 (ldd 포함)을 확인해야합니다. 이 명령을 사용하여 * .so 파일을 찾을 수 있습니다. find . -iname '*.so' -type f


dfterm이 아닌 Dwarf Fortress 자체가 실행되지 않습니다.
Macha

그런 다음 해당 실행 파일에서 ldd를 사용하십시오. 프로그램을 알지 못하므로 이름을 모릅니다. / usr / local / bin 폴더에 있는지조차 모르겠습니다 ...
LassePoulsen

ldd는 "동적 실행 파일이 아닙니다."
Macha

아, 둘이 있는데, 하나는 다른 하나만 실행합니다. 누락 된 공유 객체가 무엇인지 어떻게 알 수 있습니까?
Macha

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.