Як встановити бібліотеку libSDL_image-1.2.so.0, необхідну для запуску карликової фортеці?


16

Я завантажив карликову фортецю, і я вважаю, що зібрав усі необхідні файли. Однак, коли я клацаю на df-файл, він запитує мене про деякі речі, я натискаю "Виконати", і нічого не відбувається. Гра просто зовсім не відкривається.

Я працюю на Ubuntu 12.04 з Gnome 3 на 64-розрядному. Якщо я міг би відкрити гру, я впевнений, що міг би впоратися з іншими проблемами, які можуть виникнути.

Я досить новачок у Ubuntu, і не користувався Linux з 2009 року.

Швидше за все, є деякі файли, про які я не знаю.

Запуск у терміналі:

$ ./df
./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_image-1.2.so.0:
    cannot open shared object file: No such file or directory 

Найкращий спосіб діагностувати проблему - це запустити її на терміналі. Замість вибору "Виконати" виберіть "Запуск у терміналі" або відкрийте термінал, використовуйте cdдля переходу до каталогу, де dfє і запустіть ./df. Потім оновіть своє запитання отриманим результатом.
Салем

nex @ ExistentialAndroid: ~ / Завантаження / df_linux $ ./df ./libs/Dwarf_Fortress: помилка під час завантаження спільних бібліотек: libSDL_image-1.2.so.0: неможливо відкрити спільний файл об'єкта: Немає такого файлу чи каталогу nex @ ExistentialAndroid: ~ / Завантаження / df_linux $ Єдина проблема полягає в тому, що у мене, мабуть, встановлено libSDL_image-1.2.so.0, принаймні, у програмному забезпеченні Ubuntu Center Center сказано, що він встановлений.
Екзистенційний Android

Відповіді:


16

Здається, гра не може знайти деякі бібліотеки SDL. Використовуючи apt-fileпакет (12.10), який передбачає, що бібліотеки єlibsdl-image1.2 :

➜  apt-file search  libSDL_image-1.2.so.0
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0
libsdl-image1.2: /usr/lib/x86_64-linux-gnu/libSDL_image-1.2.so.0.8.4

Тож спочатку слід переконатися, що пакет дійсно встановлений. Якщо це, то або програмі потрібна 32-бітна версія, або вона дійсно потребує 64-бітну версію, але не може її знайти.

Щоб встановити 32-бітну версію:

sudo apt-get install libsdl-image1.2:i386

Якщо це все ще не вирішує проблему, ви можете спробувати запустити гру за допомогою LD_DEBUG=libs ./df. Це виведе багато інформації, яка може допомогти виявити, чому він не може знайти цю ліб. Також подивіться README.linuxфайл у папці Dwarf Fortress і перевірте, чи всі вимоги задоволені.


1
Я зробив, як ви запропонували, отримав ще одну помилку, тому я зробив майже те саме, але дізнався, як встановити те, що він вимагав, і я виявив це: libglu1-mesa, але це не спрацювало, тому я спробував ia32-libs. Це встановило багато речей, але зараз DF працює. Спасибі.
Екзистенційний Android

Ця відповідь також працювала для гри Onlink (для якої потрібна 32-бітна версія)
Kyborek

15

На моїх бітах Ubuntu у мене було 3 пакети для встановлення в 32 біт для DwarfFortress:

sudo apt-get install libsdl-image1.2:i386
sudo apt-get install libgtk2.0-0:i386
sudo apt-get install libsdl-ttf2.0-0:i386

Окрім трьох наведених вище, принаймні для ubuntu 14.04, вам потрібен і цей:

sudo apt-get install libglu1-mesa:i386

запуск DF на ubuntu 16.04 також вимагає встановлення цих чотирьох.
7yl4r

6

Жоден із існуючих не працював для мене на Ubuntu 16.04, але це зробило:

sudo apt-get install libsdl1.2debian libsdl-image1.2 libsdl-ttf2.0-0

Джерело


Також мені це було потрібно 16.04, щоб виправити початкову помилку. Але у мене з’явилася нова помилка для libGLU.so.1ліб.
Кенні Евітт

Це все, що мені було потрібно для запуску DF на Ubuntu 17.10
shmup

Можна підтвердити, що це разом із відповіддю Tonioooo призвело до функціонування функціонування DF 18.04
JDL

Спробував кілька інших відповідей, але це єдине, що працювало на мене.
Hatefiend

1

Мені це також знадобилося на коробці 16.04:

sudo apt-get install libglu1-mesa

Отже, всі разом:

sudo dpkg --add-architecture i386
sudo apt-get update

sudo apt-get install libsdl-image1.2:i386 \
                     libsdl-ttf2.0-0:i386 \
                     libgtk2.0-0:i386 \
                     libglu1-mesa:i386 \
                     openssl:i386

sudo apt-get install libsdl1.2debian

sudo apt-get install libsdl1.2debian \
                     libsdl-image1.2 \
                     libsdl-ttf2.0-0

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