Jak zainstalować bibliotekę libSDL_image-1.2.so.0 wymaganą do uruchomienia Dwarf Fortress?

16

Pobrałem Dwarf Fortress i wydaje mi się, że zebrałem wszystkie wymagane pliki. Jednak po kliknięciu pliku df pojawia się pytanie, klikam „Uruchom” i nic się nie dzieje. Gra po prostu się w ogóle nie otwiera.

Używam Ubuntu 12.04 z Gnome 3 na 64-bitach. Jeśli uda mi się otworzyć grę, jestem pewien, że poradzę sobie z innymi problemami, które mogą wystąpić.

Jestem dość nowy w Ubuntu i nie korzystam z Linuksa od 2009 roku.

Najprawdopodobniej są pliki, o których nie wiem.

Uruchamianie w terminalu:

$ ./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 
Egzystencjalny Android
źródło
Najlepszym sposobem na zdiagnozowanie problemu jest uruchomienie go na terminalu. Zamiast wybierać „Uruchom” wybierz „Uruchom w terminalu” lub otwórz terminal, użyj, cdaby przejść do katalogu, w którym się dfznajduje i uruchom ./df. Następnie zaktualizuj swoje pytanie otrzymanymi danymi wyjściowymi.
Salem,
nex @ ExistentialAndroid: ~ / Downloads / df_linux $ ./df ./libs/Dwarf_Fortress: błąd podczas ładowania bibliotek współdzielonych: libSDL_image-1.2.so.0: nie można otworzyć pliku obiektu współdzielonego: brak takiego pliku lub katalogu nex @ ExistentialAndroid: ~ / Pobieranie / df_linux $ Jedynym problemem jest to, że najwyraźniej mam zainstalowaną bibliotekę libSDL_image-1.2.so.0, przynajmniej Centrum Oprogramowania Ubuntu mówi mi, że jest zainstalowane.
egzystencjalny Android

Odpowiedzi:

16

Wygląda na to, że gra nie może znaleźć bibliotek SDL. Korzystając apt-filez pakietu, który otrzymuję (12.10), który zapewnia, że ​​biblioteki to 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

Dlatego najpierw powinieneś sprawdzić, czy pakiet jest naprawdę zainstalowany. Jeśli tak, to albo program potrzebuje wersji 32-bitowej, albo rzeczywiście potrzebuje wersji 64-bitowej, ale nie może jej znaleźć.

Aby zainstalować wersję 32-bitową:

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

Jeśli to nadal nie rozwiąże problemu, możesz spróbować uruchomić grę LD_DEBUG=libs ./df. Spowoduje to wyświetlenie wielu informacji, które mogą pomóc wykryć, dlaczego nie może znaleźć tej biblioteki. Zobacz również README.linuxplik w folderze Dwarf Fortress i sprawdź, czy wszystkie wymagania są spełnione.

Salem
źródło
1
Zrobiłem tak, jak sugerowałeś, dostałem kolejny błąd, więc zrobiłem prawie to samo, ale dowiedziałem się, jak zainstalować to, o co prosiłem, i znalazłem to: libglu1-mesa, ale to nie zadziałało, więc wypróbowałem ia32-libs. To zainstalowało wiele rzeczy, ale teraz DF działa. Dzięki.
egzystencjalny Android
Ta odpowiedź działała także w przypadku gry Onlink (która wymagała wersji 32-bitowej)
Kyborek
15

Na moich bitach Ubuntu miałem 3 pakiety do zainstalowania w 32 bitach dla 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

Oprócz powyższych trzech, przynajmniej na Ubuntu 14.04, potrzebujesz tego:

sudo apt-get install libglu1-mesa:i386
Tonioooooo
źródło
Uruchamianie DF na Ubuntu 16.04 również wymaga instalacji tych czterech.
7yl4r,
6

Żadne z istniejących nie działało dla mnie na Ubuntu 16.04, ale tak się stało:

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

Źródło

Nick Zinger
źródło
Ja również potrzebne to na 16.04, aby naprawić oryginalny błąd. Ale mam nowy błąd dla libGLU.so.1lib.
Kenny Evitt,
To wszystko, czego potrzebowałem, aby uruchomić DF na Ubuntu 17.10
shmup
Potwierdza, że ​​to wraz z odpowiedzią Tonioooo prowadzi do
sprawnej
Próbowałem wielu innych odpowiedzi, ale to jedyna, która zadziałała dla mnie.
Hatefiend
1

Ja również potrzebne to na pudełku 16.04:

sudo apt-get install libglu1-mesa

Wszystko razem:

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
źródło