Як встановити бібліотеку 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.