getlibs
Archivierte Anleitung
Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.
Achtung!
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.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
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.
Installation¶
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.
Benutzung¶
Installation eines 32-Bit-Paketes erzwingen¶
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 64-Bit-Architektur.
32-Bit-Bibliotheken herunterladen¶
Ist ein 32-Bit-Programm nun auf einem 64-Bit-System installiert, so kann man damit beginnen, die nötigen Bibliotheken zu installieren.
Programm analysieren¶
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.
Anhand des Namens des Paketes¶
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
Anhand des Namens der Bibliothek¶
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
Lokale 32-Bit-Bibliothek¶
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
32-Bit-Bibliothek aus Paketquelle herunterladen¶
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
Optionen¶
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. |
Links¶
Thread auf ubuntuforums.org über den getlibs entstanden ist 🇬🇧
64-Bit-Architektur - Übersichtsartikel