Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel für weitere Änderungen gesperrt.
Ab Ubuntu 11.10 ist die Verwendung von getlibs in der Regel nicht mehr nötig, da die Paketverwaltung auf 64-Bit-Systemen mittlerweile selbst in der Lage ist, 32-Bit-Bibliotheken parallel zu den 64-Bit-Bibliotheken zu verwalten. Möchte man also ein 32-Bit-Programm verwenden, installiert man es einfach und muss sich um nichts weiter kümmern, denn die nötigen 32-Bit-Bibliotheken werden automatisch mitinstalliert.
Installiert man ein Programm ohne die Paketverwaltung, so sollte man es wie weiter unten beschrieben mit ldd analysieren und die 32-Bit-Bibliotheken von Hand (über die Paketverwaltung ohne getlibs) nachinstallieren. Die 32-Bit-Versionen der Bibliothekspakete erkennt man dadurch, dass dem Namen ein :i386 anhängt, z.B libgtk-3-0:i386.
Installiert man 32-Bit-Software auf einem 64-Bit-Ubuntu, so fehlen oftmals wichtige Bibliotheken, ohne die das 32-Bit-Programm nicht laufen kann. Um dennoch 32-Bit-Software auf einem 64-Bit-System betreiben zu können, müssen diese Bibliotheken heruntergeladen und von Hand installiert werden, was relativ mühsam ist.
getlibs erleichtert diesen Vorgang. Das Programm analysiert beispielsweise, welche Bibliotheken ein 32-Bit-Programm benötigt und installiert diese direkt aus der Paketverwaltung heraus. So lässt sich 32-Bit-Software sehr leicht auf einem 64-Bit-Ubuntu installieren.
getlibs ist nicht aus den Paketquellen installierbar. Derzeit kann es - nachdem das PPA jcollins/jaminppa nicht mehr exisitiert - noch von wordpress heruntergeladen werden. Die Endung "pdf" muss durch "deb" ersetzt werden.
Pakete, die für ein 32-Bit-System erzeugt worden sind, lassen sich nicht wie üblich auf einem 64-Bit-System installieren. Das System weigert sich mit der Meldung
Paket-Architektur (i386) passt nicht zum System (amd64)
diese Pakete zu installieren. Daher muss man die Installation solcher Pakete erzwingen.[3]
# Allgemein sudo dpkg -i --force-all <paket_i386.deb> # Beispiel sudo dpkg -i --force-all skype-debian_2.0.0.63-1_i386.deb
Weitere Informationen hierzu findet man unter 64Bit-Architektur.
Ist ein 32-Bit-Programm nun auf einem 64-Bit-System installiert, so kann man damit beginnen, die nötigen Bibliotheken zu installieren.
Mit dem Befehl ldd
kann man bestimmen, welche Bibliotheken ein Programm zum Ausführen benötigt.
# Allgemein ldd </pfad/zu/binary> # Beispiel ldd /usr/bin/skype
linux-gate.so.1 => (0xffffe000) libXv.so.1 => /usr/lib32/libXv.so.1 (0xf7e37000) libaudio.so.2 => not found ...
Alle Bibliotheken, die hier als not found
markiert werden, sind noch nicht auf dem System installiert. Diese Ausgaben benutzt nun getlibs und installiert automatisch alle Bibliotheken, die nicht gefunden werden konnten. Dazu startet man getlibs mit Root-Rechten und übergibt den Pfad zur ausführbaren Datei des Programms.
# Allgemein sudo getlibs </pfad/zu/binary> # Beispiel sudo getlibs /usr/bin/skype
Danach sind alle Bibliotheken, die dieses Programm benötigt, installiert. Das Programm sollte nun sofort und ohne weitere Probleme starten. Die restlichen Möglichkeiten getlibs zu bedienen sind meist nur für spezielle Fälle nötig.
Alternativ kann man mittels getlibs auch direkt bestimmte Bibliotheken installieren. Dazu müssen der Schalter -p
gesetzt und der Name des Paketes angegeben werden, das die Bibliothek enthält.
# Allgemein sudo getlibs -p <paket1> <paket2> # Beispiel sudo getlibs -p libqt4-core libqt4-gui
Des Weiteren kann man mittels getlibs auch direkt bestimmte Bibliotheken installieren. Dazu müssen der Schalter -l
gesetzt und der Name der Bibliothek angegeben werden.
# Allgemein sudo getlibs -l <lib1> <lib2> # Beispiel sudo getlibs -l libogg.so.0 libSDL-1.2.so.0
Getlibs kann auch eine 32-Bit-Bibliothek, die man manuell aus den Paketquellen heruntergeladen hat, installieren.
# Allgemein sudo getlibs -i <i386_library_1.deb> # Beispiel sudo getlibs -i libqt4-gui_4.3.2-0ubuntu3.2_i386.deb
Letztendlich kann man auch direkt Bibliotheken aus dem Internet herunterladen und gleich installieren lassen.
# Allgemein sudo getlibs -w ubuntu.com/i386_library_1.deb # Beispiel sudo getlibs -w security.ubuntu.com/ubuntu/pool/main/q/qt4-x11/libqt4-gui_4.3.2-0ubuntu3.2_i386.deb
Weitere Optionen von getlibs | |||
Option | Beschreibung | ||
--apt-file | Benutzt apt-file , um den Paketnamen einer Bibliothek zu bestimmen. Die Standardeinstellung benutzt direkt packages.ubuntu.com. Dies ist besonders nützlich für Anwender, die nicht Ubuntu benutzen. | ||
--build | Konvertiert ein 32-Bit Paket in ein 64-Bit Paket und installiert es gleich. Bibliotheken, die in diesem Paket enthalten sein sollten, werden nicht installiert. Diese Funktion ist noch nicht ausgereift! | ||
--savebuild | Kann mit --build benutzt werden. Das generierte 64-Bit Paket wird im Homeverzeichnis des Benutzers abgelegt. | ||
--mirror bzw. -m | Benutzt den angegebenen Mirror zum Download. | ||
--verbose | Liefert zusätzliche Informationen. | ||
--ldconfig | Führt ldconfig für Verzeichnisse aus, wo neue Bibliotheken installiert wurden. | ||
-64 | Erlaubt apt-get 64-Bit Pakete auf einem 64-Bit System zu installieren | ||
--distro | Hier kann Ubuntu oder Debian angegeben werden. Ubuntu installiert Bibliotheken nach /usr/lib32 bzw. /lib32. Debian hingegen nach /emul/ia32-linux/. Als Standard werden die Bibliotheken passend zum System installiert. | ||
--release | Diese Option kann auf lucid oder eine andere Version gesetzt werden. Über Release wird bestimmt, welche Pakete heruntergeladen werden. Als Standard werden Bibliotheken passend zum System installiert. |
Diese Revision wurde am 27. August 2013 01:07 von Lasall erstellt.