Błąd podczas ładowania bibliotek współdzielonych: libopenal.so.1 (Game 'pacapong' w Ubuntu 14.10)

11

Pobrałem grę pacapong dla systemu Linux i próbowałem uruchomić plik wykonywalny, co powoduje błąd:

$ ./runner 

./runner: error while loading shared libraries: libopenal.so.1: 
cannot open shared object file: No such file or directory

Oczywiście istnieje konieczność załadowania libopenal.so.1:

$ objdump -p ./runner |grep libopenal.so.1

NEEDED libopenal.so.1

Tam libopenal.so.1leży /usr/lib/x86_64-linux-gnui mogę zrobić:

$ ldd libopenal.so.1
linux-vdso.so.1 =>  (0x00007fffcdbbb000)

...

Nie będę uruchamiał tego pliku wykonywalnego (./runner) jako root (na wypadek gdyby ten problem mógł być związany z niewystarczającymi prawami, czego nie zakładam).

Więc co mógłbym spróbować?

de facto
źródło

Odpowiedzi:

12

Błąd wynika z tego, że jest to 32-bitowa gra, którą próbujesz uruchomić w 64-bitowym systemie Linux. Przepracowałem błędy, przeglądając komunikaty o błędach, aby dowiedzieć się, jakich pakietów mi brakuje. Skończyłem instalowanie następujących pakietów, aby uruchomić grę:

sudo apt-get install libxxf86vm1:i386 libglu1-mesa:i386 libopenal1:i386 libssl1.0.0:i386
BennyMcBenBen
źródło
Czy mógłbyś wyjaśnić, co robi instalowanie tych pakietów i jak rozwiązuje problemy?
Michael Lindman,
Dziękuję za odpowiedź, która rozwiązuje problem. Tam myślisz, że wiesz wszystko o systemie, cóż, właściwie o nim wiesz, ale nie myślisz o tym ...;)
de facto
To. GOG zawiera gry powiązane z 32-bitowym Linuksem (bgggh, dlaczego), więc jeśli masz komputer 64-bitowy, musisz mieć ZARÓWNO biblioteki OpenGL / etc dla wersji 64-bitowych i 32-bitowych. Jest to bardzo mylące, ponieważ mówi ci, że brakuje Ci bibliotek, które znasz.
Katastic Voyage
0

W przyszłości uruchomienie ldd na ./runner powie ci, jakich bibliotek potrzebuje, jeśli ich brakuje, ORAZ jeśli są one i386 lub 64-bitowe.

$ ldd na ./runner

/ undertale / game $ ldd ./runner

linux-gate.so.1 (0xf7798000)

libgtk3-nocsd.so.0 => /usr/lib/i386-linux-gnu/libgtk3-nocsd.so.0 (0xf7759000)

libstdc ++. so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75d3000)

...

libXrandr.so.2 => nie znaleziono

libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf6b41000)

libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6b3d000)

libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf6b36000)

Uwaga: Nadal brakuje mi XRANDR dla i386. To jeszcze nie zadziała.

$ ./runner

./runner: błąd podczas ładowania bibliotek współdzielonych:> libXrandr.so.2: nie można otworzyć pliku obiektu współdzielonego: brak takiego pliku lub katalogu

Katastic Voyage
źródło