Pakete für mehrere CPU-Architekturen in Linux installieren
Ich habe ein 32-Bit-Programm für Linux (i386), welches ich auch gerne auf meinem amd64-Debian-System nutzen würde. Geht das?
Ich habe ein 32-Bit-Programm für Linux (i386), welches ich auch gerne auf meinem amd64-Debian-System nutzen würde. Geht das?
Grundsätzlich ja. Die Paketverwaltung von Debian ab Wheezy (7.0) und Ubuntu-Versionen ab 12.04 kann mehrere Prozessorarchitekturen kombinieren, ohne dass sich die Bibliotheken für verschiedene Architekturen gegenseitig ins Gehege kommen. Diese Technik wird Multi-Arch-Unterstützung genannt.
Wenn Ihr Programm also im Debian-Paketformat für die Architektur i386 vorliegt, sollten Sie vor der Installation überprüfen, ob die Paketverwaltung bereits die Architektur i386 kennt. Das geht mit
dpkg --print-foreign-architectures
Wenn die Ausgabe leer bleibt oder nicht „i386“ enthält, fügen Sie mit folgenden Befehlen die i386-Architektur hinzu und aktualisieren die Paketlisten:
dpkg --add-architecture i386
aptitude update
Dann können Sie das i386-Paket mit Dpkg installieren und wie gewohnt mit aptitude -f install die eventuell fehlenden Pakete nachrüsten.
Sie sollten die i386-Architektur auch dann zur Paketverwaltung hinzufügen, wenn ein Binärprogramm nicht als Deb-Paket vorliegt: Nur dann können Sie etwaige fehlende Bibliotheken und andere Abhängigkeiten, die Ihnen zum Beispiel ldd auflistet, direkt aus dem Paket-Repository Ihrer Distribution nachinstallieren. Anhand der Ausgabe können Sie dann – unter Debian und abgeleiteten Distributionen – mit apt-file search ergründen, welche Pakete Sie benötigen. Wenn in der Ausgabe beispielsweise die Zeile
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1
auftaucht, suchen Sie mit apt-file search libxcb.so.1 nach dem Paketnamen. In diesem Fall lautet das Ergebnis „libxcb1“. Um nun die i386-Version dieser Bibliothek zu installieren, müssen Sie aptitude install libxcb:i386 ausführen.
(mid)