Как установить библиотеку libSDL_image-1.2.so.0, необходимую для запуска Dwarf Fortress?

16

Я скачал Dwarf Fortress и считаю, что собрал все необходимые файлы. Однако, когда я нажимаю на файл 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 
Экзистенциальный Android
источник
Лучший способ диагностировать проблему - запустить ее на терминале. Вместо того, чтобы выбирать «Выполнить», выберите «Запустить в терминале» или открыть терминал, используйте, cdчтобы перейти в каталог, где dfнаходится и запустить ./df. Затем обновите ваш вопрос с выводом, который вы получите.
Салем
nex @ ExistentialAndroid: ~ / Downloads / df_linux $ ./df ./libs/Dwarf_Fortress: ошибка при загрузке общих библиотек: libSDL_image-1.2.so.0: невозможно открыть файл общего объекта: нет такого файла или каталога nex @ ExistentialAndroid: ~ / Downloads / df_linux $ Единственная проблема в том, что у меня, по-видимому, установлена ​​libSDL_image-1.2.so.0, по крайней мере, из-за того, что Ubuntu Software Center говорит мне, что она установлена.
Existential 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 и убедитесь, что все требования выполнены.

Salem
источник
1
Я сделал, как вы предложили, получил еще одну ошибку, поэтому я сделал почти то же самое, но узнал, как установить то, что он запрашивал, и обнаружил следующее: libglu1-mesa, но это не сработало, поэтому я попробовал ia32-libs. Это установило много вещей, но теперь DF работает. Благодарю.
Existential Android
Этот ответ также работал для игры Onlink (для которой требовалась 32-
битная
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
Tonioooooo
источник
запуск DF на Ubuntu 16.04 также требует установки этих четырех.
7yl4r 22.12.16
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,
Можно подтвердить, что это вместе с ответом Тониооо привело к работающей установке DF 18 апреля
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
Kenny Evitt
источник