Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
Spiele der Firma Loki Software, Inc. benötigen oft ganz spezielle Versionen einiger Bibliotheken. Da Linux ständig weiterentwickelt wird und bei aktuellen Linux-Betriebssystemen insbesondere eine neuere Version der GNU C-Bibliothek zum Einsatz kommt, müssen die benötigten Bibliotheken zusätzlich in der benötigten Version bereitgestellt werden. Loki_compat ist ein Archiv, welches diese Bibliotheken enthält.
Die im Internet kursierenden Versionen enthalten unterschiedliche Bibliotheken, weshalb man nicht nur eine Quelle nutzen sollte, um fehlende .so-Dateien (shared object) zu finden. Je nach Version sind unterschiedlich viele Bibliotheken enthalten, weshalb man hier genauer schauen sollte, was man benötigt.
Für die Installation von einer der Internetseiten die Bibliotheken herunterladen und entpacken [3]. Den Ordner Loki_Compat mit Root-Rechten nach /opt/Loki_Compat oder /usr/local/games/Loki_Compat verschieben [1], damit er im Starter hinterlegt werden kann:
sudo mv Loki_Compat /opt/Loki_Compat # Pfad ggf. anpassen
Bei Spielen - in diesem Beispiel SimCity - muss der Pfad zu den benötigten Bibliotheken im Starter mitgegeben werden [2]:
1 2 3 4 5 6 7 8 | #!/bin/bash LCPATH=/opt/Loki_Compat SC3U=/usr/local/games/SC3U echo Running from $SCPATH LANG=english cd $SCPATH export LD_LIBRARY_PATH=$LCPATH LD_ASSUME_KERNEL=2.2.5 $LCPATH/ld-linux.so.2 $SC3U/sc3u |
Mitunter sind zur Ausführung weitere Umgebungsvariablen erforderlich. Startet ein Spiel trotzdem nicht, kann es sein, dass weitere Bibliotheken fehlen. Um in Erfahrung zu bringen, welche dies sind, nutzt man ldd.
Umgebungsvariablen werden in diesem Artikel detailliert behandelt.
Hier eine Auflistung der Variablen, welche meist bei Anwendungsstartern verwendet werden:
Umgebungsvariablen | |
Variable | Beschreibung |
LD_ASSUME_KERNEL=Kernelversion | Bei Problemen mit NTPL kann die Umgebungsvariable helfen z.B. LD_ASSUME_KERNEL=2.4.1 Hier nutzt das System den vorgegebenen Kernel. |
LD_LIBRARY_PATH= | Suchpfade für Bibliotheken z.B. LD_LIBRARY_PATH=/lib/Loki_Compat/ /opt/Loki_Compat/ld-linux.so.2 /usr/local/games/Heroes3/heroes3.dynamic |
LD_PRELOAD= | Die Funktionen der hier aufgeführten Bibliotheken haben Vorrang. |
ldd zeigt, welche Bibliotheken von einem Programm verwendet werden. Im folgenden Beispiel werden die benötigten Bibliotheken, .so-Dateien, von SimCity angezeigt:
ldd sc3u linux-gate.so.1 => (0xb7f97000) libX11.so.6 => /usr/lib/libX11.so.6 (0xb7e78000) libXext.so.6 => /usr/lib/libXext.so.6 (0xb7e69000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7e64000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7e4b000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7e25000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7cc7000) libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0xb7cc4000) libxcb.so.1 => /usr/lib/libxcb.so.1 (0xb7cab000) libXau.so.6 => /usr/lib/libXau.so.6 (0xb7ca7000) /lib/ld-linux.so.2 (0xb7f7d000) libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb7ca2000)
Es werden zur Ausführung des Spiels diverse Bibliotheken benötigt. Ihr Fundort im Dateisystem ist rechts zu ersehen. In der Regel findet man diese in /lib, /usr/lib und /usr/local/lib. Im Beispiel sind alle Bibliotheken auf dem System vorhanden.
Um Bibliotheken hinzuzufügen das gewünschte Paket, z.B. libg++2.8.1.3-glibc2.2_2.95.4-24_i386.deb, herunterladen und entpacken [3]. Nun den entpackten Ordner öffnen und ebenfalls die darin enthaltene data.tar.gz entpacken. Den Ordner /usr/lib öffnen und die benötigten .so-Dateien in den Ordner kopieren in dem sich Loki_Compat-Dateien befinden.
Diese Revision wurde am 4. Februar 2016 00:04 von march erstellt.