64-Bit-Architektur
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.
Anmerkung: Wurde durch CPU-Architektur abgelöst.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Die 64-Bit-Architektur ist bei fast allen neueren CPUs Standard. Ubuntu gibt es bereits seit Warty Warthog 4.10 als 64-Bit Version. Diese funktioniert auf allen 64-Bit-Prozessoren mit AMD64- oder Intel 64-Architektur. Seit 17.10 gibt es Ubuntu Desktop nur noch als 64-Bit Version, seit 18.04 gibt es ebenfalls Ubuntu Server nur als 64-Bit Version. Nur Lubuntu und Xubuntu gibt es noch als 32-Bit Version bis Version 18.04, bei 18.10 nur noch Lubuntu, ab 19.04 nur noch den Netboot-Installer und mit Version 19.10 wurde die 32-Bit-Veriante komplett eingestellt.
64-Bit-Unterstützung prüfen¶
Ob die eigene CPU 64-Bit fähig ist kann man mit folgendem Befehl herausfinden[3]:
lscpu
Wird dort gleich zu Beginn 64-Bit
neben 32-Bit
gelistet, dann bietet der Prozessor auch eine 64-Bit-Unterstützung.
Hat der Prozessor keine 64-Bit-Unterstützung findet man im Wikiartikel CPU-Architektur weitere Informationen.
Unterschiede zwischen ia64 und amd64¶
Viele Benutzer sind verwirrt, da viele Intel-Prozessoren den EM64T-Befehlssatz beherrschen, der zu amd64 kompatibel ist. Dies hängt damit zusammen, dass dieser von AMD entwickelt und von Intel nur implementiert wurde. amd64 hatten anfangs nur der Athlon 64 Prozessor und entsprechende Opterons, später dann aber auch der Pentium 4 und dessen Nachfolger mit der Bezeichnung Intel 64 bzw. vorher EM64T.
ia64 haben nur die Intel-Itanium-Prozessoren. Auf solchen kann x86 im Emulationsmodus genutzt werden. Ein Itanium kann kein amd64 bzw. Intel 64. Man muss auf die 32-Bit-Version von Ubuntu ausweichen.
32-Bit-Programme erzwingen¶
Es ist auch möglich, 32-Bit-Programme auf der 64-Bit-Ubuntu-Version ablaufen zu lassen - schließlich sind die oben genannten AMD64/EM64T-Architekturen lediglich 64-Bit-Erweiterungen der 32-Bit-Vorgänger (ein 32-Bit-Programm wird nicht über einen 32-Bit-Emulator transformiert).
Folgende Möglichkeiten zeigen, wie man 32-Bit-Anwendungen installieren bzw. nutzen kann.
linux32¶
Hinweis:
Man sollte diese Schritte nur durchführen, wenn es keine x64-Version der Software gibt, die man installieren möchte. Gerade bei Installationsskripten sollte Vorsicht geboten sein.
Der Befehl linux32
bietet die Möglichkeit, Programme zum Laufen zu bringen, die prüfen, ob sie auf einem 32-Bit-System installiert sind.
linux32 firefox
Man setzt also einfach linux32
vor den Befehl, damit das nachfolgend aufgerufene Programm "denkt", es liefe auf einem 32-Bit-System.
32-Bit-Bibliotheken¶
Manche der erfolgreich installierten (oder auch nur entpackten) 32-Bit-Programme brechen mit Fehlermeldungen ab, weil eine bestimmte Bibliothek nicht gefunden wurde, obwohl die Bibliothek in /usr/lib/ existiert. Hier ein Beispiel anhand des hypothetischen Programms foobar. Der Aufruf via:
./foobar
führt zu einer Fehlermeldung:
./foobar: error while loading shared libraries: libmng.so.1: cannot open shared object file: No such file or directory
Der Grund dafür ist, dass die benötigte Bibliothek nicht in der 32-Bit-Version in /usr/lib32/ vorliegt. Wegen MultiArch-Unterstützung kann in der Regel das zugehörige 32-Bit-Paket parallel installiert werden. In dem Fall schaut mal also zu welchem Paket die benötigte Bibliothek gehört:
dpkg -S libmng.so.1
libmng1:amd64: /usr/lib/x86_64-linux-gnu/libmng.so.1 libmng1:amd64: /usr/lib/x86_64-linux-gnu/libmng.so.1.1.0.10
Der Paketname ist in diesem Fall libmng1:amd64 (bzw. libmng1). Die Architektur ersetzt man nun durch i386 und installiert [1] das entsprechende Paket, hier libmng1:i386.
Unter Umständen muss MultiArch erst aktiviert werden:
sudo dpkg --add-architecture i386 sudo apt-get update
Der in alten Anleitungen manchmal zu findende Tipp, stattdessen ia32-libs nachzuinstallieren, ist seit Ubuntu 13.10 nicht mehr möglich, da das Paket aus den offiziellen Paketquellen entfernt wurde.
--force-architecture¶
Im Normalfall wird beim Versuch, ein für einen 32-Bit-Prozessor kompiliertes Programm auf einem 64-Bit-Ubuntu zu installieren, keine Fehlermeldung ausgegeben, sondern die 32-Bit-Abhängigkeiten dank MultiArch passend installiert.
Wird man trotzdem mit einer Fehlermeldung konfrontiert, so deutet dies mit sehr hoher Wahrscheinlichkeit auf nicht gut gewartete Fremdpakete hin.
sudo dpkg -i paketname.deb
dpkg: Fehler beim Bearbeiten von opera_9.01-20060728.6-shared-qt_en_i386.deb (--install): Paket-Architektur (i386) passt nicht zum System (amd64) Fehler traten auf beim Bearbeiten von: opera_9.01-20060728.6-shared-qt_en_i386.deb
Bei Verwendung des Debian-Paketmanagers dpkg kann man diese Fehlermeldung mit dem Parameter --force-architecture
umgehen [3]:
sudo dpkg --force-architecture -i opera_9.01-20060728.6-shared-qt_en_i386.deb
dpkg - Warnung: Problem wird übergangen, weil --force angegeben ist: Paket-Architektur (i386) passt nicht zum System (amd64) Wähle vormals abgewähltes Paket opera. dpkg: Ziehe Entfernen von opera-static zugunsten von opera in Betracht ... dpkg: Ja, werde opera-static zugunsten von opera entfernen. (Lese Datenbank ... 116778 Dateien und Verzeichnisse sind derzeit installiert.) Entpacke opera (aus opera_9.01-20060728.6-shared-qt_en_i386.deb) ... Richte opera ein (9.01-20060728.6) ...
Achtung!
Dieser Parameter ignoriert lediglich die Prüfung der korrekten Architektur. Es gibt keine Garantie, dass ein so installiertes Paket auch einwandfrei funktioniert!
Hinweis:
Der Paketbetreuer sollte auf diese Inkompatibilität hingewiesen werden.
Sollte das Ignorieren der Prüfung der korrekten Architektur nicht ausreichen, können die fehlenden Abhängigkeiten ebenfalls durch APT mit installiert werden, wenn zuvor 32-Bit aktiviert wurde:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt install PAKET
Für PAKET
ist hier entsprechend die Datei einzusetzen.