Archiv/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:

  1. Ein PPA freischalten

  2. Installation von Paketen

  3. Ein Terminal öffnen

Inhaltsverzeichnis
  1. Installation
  2. Benutzung
  3. Links

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 64Bit-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.