Я установил Dwarf Fortress на Linux VPS для использования с dfterm. Он работает под управлением Ubuntu 10.04 Server x86-32. Я вполне уверен, что у меня есть все зависимости:
Я установил:
Мне пришлось отключить звук, иначе он мгновенно перестанет работать, и я установил режим отображения текста. Я не сделал никаких других изменений в конфигурации.
1111 Однако, даже прежде чем я подойду к дфтерму, он не будет работать должным образом. Он просто отображает пустой экран. Что может быть причиной этого? Есть ли зависимость, которую я пропустил? Есть ли что-то еще, что я должен был изменить в конфиге?
Учитывая, что это сервер, есть хороший шанс, что если отсутствует зависимость, это то, что разработчики пошли "Конечно, у всех есть [ 110], который "и не удосужился перечислить.
Другие приложения ncurses (vim, irssi его используют, я думаю?) Работают нормально.
Я смог воссоздать segfaulting, запустив df на обычной установке Ubuntu с выключенным X.
...
(Dwarf_Fortress:5346): Gdk-CRITICAL **: gdk_window_new: assertion `GDK_IS_WINDOW (parent)' failed
Segmentation fault
Я подозреваю, что проблема в том, что в этой игре должен быть доступен работающий драйвер GL. И для этого вам нужен X работает. Но VPS не имеет X!
Вместо этого используйте Xvfb, который является «поддельным» виртуальным X. Вам нужно будет установить xvfb и любые зависимости, которые он хочет (вероятно, xorg-server-core и куча других вещей, которые не могут быть установлены на Ubuntu Server).
Запустите fake xserver следующим образом:
$ Xvfb :1 -screen 0 1024x768x16 &
Затем убедитесь, что на него указана переменная DISPLAY:
$ export DISPLAY=:1
$ ./df
Мне также нужно было отключить звук и запустить в текстовом режиме. режим, но он работал таким образом, без X работает. Я надеюсь, что это работает для вас.
Вам нужно отредактировать ваш init.txt. Найдите настройку для [PRINT_MODE:2D]
и измените ее на [PRINT_MODE:TEXT]
Возможно, вы также захотите изменить на [SOUND:NO]
.
Вы будете работать только с разрешением 80x24, если только вы не запускаете внутри экрана или tmux.
Вы видели эту статью DFTerm на DF Wiki? В нем перечислены некоторые зависимости, которые вы, кажется, не перечислили выше ....
Вы можете попробовать использовать ldd
, чтобы увидеть, отсутствует ли общий объект.
Например, что-то вроде:
ldd /usr/local/bin/df
Все, что ldd перечисляет как «not found», отсутствует.
Вы также должны попытаться просмотреть все файлы * .so (с ldd), если они есть, в папке с игрой. Вы можете найти файлы * .so с помощью этой команды: find . -iname '*.so' -type f