Як я можу запустити карликову фортецю в текстовому режимі (ncurses) на моєму Linux VPS?


14

Я встановив карликову фортецю на моєму Linux VPS для використання з dfterm. Він працює на сервері Ubuntu 10.04 Server x86-32. Я впевнений, що у мене всі залежності:

Я встановив:

  • ncurses
  • ncursesw
  • libsdl
  • libsdl-образ
  • libgtk
  • libglu
  • лібопенал1

Мені довелося вимкнути звук, інакше він миттєво стане за замовчуванням, і я встановив режим відображення тексту. Я не вніс жодних інших змін у конфігурацію.

Однак навіть до того, як я підійду до dfterm, він не працюватиме належним чином. Він просто відображає порожній екран. Що може бути причиною цього? Чи є залежність, яку я пропустив? Чи потрібно щось змінити в конфігурації?

З огляду на , що це сервер, є хороший шанс , що якщо є відсутній залежність, це те , що розробники пішли «Звичайно, у кожного є , що " і не спромігся список.

Інші програми ncurses (vim, irssi використовують це, я думаю?) Працюють добре.


Я спочатку запитував це про ігри, але люди там запропонували запитати тут: gaming.stackexchange.com/questions/4716/…
Macha

Ага, яка цікава ідея. Чи можете ви сказати, чи гра намагається зробити що-небудь? Запустіть 'top' з іншого терміналу і подивіться, чи використовує він будь-який процесор.
Ніколас Лицар

Відповіді:


10

Мені вдалося відтворити 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-сервер-ядро та купу інших речей, які можуть бути не встановлені на сервері Ubuntu).

Почніть підроблений xserver так:

 $ Xvfb :1 -screen 0 1024x768x16 &

Потім переконайтесь, що ваша змінна DISPLAY вказується на неї:

$ export DISPLAY=:1
$ ./df

Мені також потрібно було відключити звук і запустити його в режимі TEXT, але він працював таким чином, не працюючи з X. Я сподіваюся, що це працює для вас.


Segfault відсутній, але коли я запускаю його, я отримую "Fallback: Відкриті libncurses, вихід може бути порушений. Символ не знайдений: waddnwstr.", І не дає більше виводу, який може вийти з Ctrl-X, але повністю заплутався сеанс ssh. (робить ширину 80 + підказку, а не 80 дюймів підказки). Це найближча відповідь, яку я отримав, тому я все-таки дарую вам винагороду до її закінчення, але я сподіваюся, що цю проблему також можна вирішити.
Мача

Правильно, я там пропустив символьне посилання. Виправлено це. Тепер все, що я отримую, - це сірий вихід (не чорний мій термінал, а інший сірий колір).
Мача

Я зрозумів, що символ не знайшов помилку, і встановлення lib32ncursesw5-dev та lib32ncursesw5 (я на 64-розрядному рівні) вирішила його.
Брайс

Я використовую 32 біт. Мені довелося створити посилання для /usr/lib/libncursesw.so -> /lib/libncursesw.so.5, щоб символ не знайшов помилку.
Мача

1

Ви бачили цю статтю DFTerm у Вікі DF? У ньому перераховані деякі залежності, які, здається, не перелічені вище ....


Ці залежності полягають у складанні dfterm, що я і зробив. Це карликова фортеця, яка не працюватиме.
Мача

1

Ви можете спробувати використати, lddщоб побачити, чи немає спільного об'єкта.

Наприклад, щось на кшталт:

ldd /usr/local/bin/df

Все, що ldd зазначає як "не знайдено", відсутнє.

Спробуйте також переглянути всі * .so файли (з ldd), якщо такі є в папці гри. Ви можете знайти * .so файли за допомогою цієї команди: find . -iname '*.so' -type f


Саме карликова фортеця, а не dfterm, не працюватиме.
Macha

Тоді використовуйте ldd для цього виконуваного файлу, я не знаю програми, тому я не знаю, як називати її. Я навіть не знаю, чи знаходиться в папці / usr / local / bin ...
LassePoulsen

ldd дає: "Не динамічний виконуваний файл."
Мача

О, є два, один просто біжить інший. Як я можу сказати, що є відсутнім спільним об’єктом?
Мача

все, що ldd зазначає як "не знайдено", відсутнє;)
LassePoulsen

1

Вам потрібно відредагувати свій init.txt. Знайдіть налаштування [PRINT_MODE:2D]та змініть його на[PRINT_MODE:TEXT]

Ви, ймовірно, хочете змінитись [SOUND:NO]також.

Ви будете працювати лише в 80x24, якщо не будете працювати всередині екрана чи tmux.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.