it-swarm-vi.com

Làm cách nào tôi có thể chạy Pháo đài lùn ở chế độ văn bản (ncurses) trên VPS Linux của mình?

Tôi đã cài đặt Pháo đài lùn trên VPS Linux của mình để sử dụng với dfterm. Nó đang chạy Ubuntu 10.04 Server x86-32. Tôi khá chắc chắn Tôi có tất cả các phụ thuộc:

Tôi đã cài đặt:

  • lời khuyên
  • ncursesw
  • libsdl
  • hình ảnh libsdl
  • libgtk
  • libglu
  • libopenal1

Tôi đã phải tắt âm thanh hoặc nó sẽ ngay lập tức segfault và tôi đặt chế độ hiển thị thành văn bản. Tôi đã không thực hiện thay đổi nào khác cho cấu hình.

Tuy nhiên, ngay cả trước khi tôi đến gần sau, nó sẽ không chạy đúng. Nó chỉ hiển thị một màn hình trống. Điều gì có thể gây ra điều này? Có một phụ thuộc tôi đã bỏ lỡ? Có điều gì khác tôi nên đã thay đổi trong cấu hình?

Cho rằng đó là một máy chủ, rất có thể nếu thiếu một sự phụ thuộc, đó là điều mà các nhà phát triển đã nói "Chắc chắn, mọi người đều có đó" và không bận tâm liệt kê.

Các ứng dụng ncurses khác (vim, irssi sử dụng nó, tôi nghĩ vậy?) Hoạt động tốt.

14
Macha

Tôi đã có thể tạo lại segfaulting bằng cách chạy df trên bản cài đặt Ubuntu thông thường với X bị tắt.

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

Tôi nghi ngờ vấn đề là trò chơi này hy vọng sẽ có trình điều khiển GL hoạt động. Và cho rằng bạn cần X chạy. Nhưng VPS không có X!

Thay vào đó, hãy sử dụng Xvfb, đó là X ảo "giả". Bạn sẽ cần cài đặt xvfb và bất kỳ phụ thuộc nào nó muốn (có thể là xorg-server-core và một loạt các thứ khác có thể không được cài đặt trên Ubuntu Server).

Bắt đầu xserver giả như thế này:

 $ Xvfb :1 -screen 0 1024x768x16 &

Sau đó, đảm bảo biến HIỂN THỊ của bạn được trỏ đến nó:

$ export DISPLAY=:1
$ ./df

Tôi cũng cần phải tắt âm thanh và chạy ở chế độ TEXT, nhưng nó hoạt động theo cách này, không có X chạy. Tôi hy vọng nó làm việc cho bạn.

10
Bryce

Bạn đã thấy bài viết DFTerm này trên DF Wiki chưa? Nó liệt kê một số phụ thuộc mà bạn dường như không liệt kê ở trên ....

1
Rob Cowell

Bạn có thể thử sử dụng ldd để xem có thiếu đối tượng chia sẻ nào không.

Ví dụ: một cái gì đó như:

ldd /usr/local/bin/df

Tất cả mọi thứ mà ldd liệt kê là "không tìm thấy" đều bị thiếu.

Bạn cũng nên cố gắng xem tất cả các tệp * .so (có ldd) nếu có trong thư mục trò chơi. Bạn có thể tìm thấy các tệp * .so bằng cách sử dụng lệnh này: find . -iname '*.so' -type f

1
LassePoulsen

Bạn cần chỉnh sửa init.txt của bạn. Tìm kiếm một cài đặt cho [PRINT_MODE:2D] và thay đổi nó thành [PRINT_MODE:TEXT]

Bạn có thể muốn thay đổi thành [SOUND:NO].

Bạn sẽ chỉ chạy ở 80x24 trừ khi bạn chạy bên trong màn hình hoặc tmux.

1
slacy