[[Vorlage(Archiviert, "Wurde durch [:CPU-Architektur:] abgelöst.")]][[Inhaltsverzeichnis()]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(2)]] [[Bild(Wiki/Icons/ubuntu64.png, 32, align=left)]] Die [wikipedia:64-Bit-Architektur:] ist bei fast allen neueren CPUs Standard. Ubuntu gibt es bereits seit [:4.10: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 [:Downloads/Netzwerkinstallation: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]: {{{#!vorlage Befehl 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 [wikipedia:Intel_Itanium: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. [[Anker(Installation_erzwingen)]] = 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 == {{{#!vorlage 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. {{{#!vorlage Befehl 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: {{{#!vorlage Befehl ./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: {{{#!vorlage Befehl 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: {{{#!vorlage Befehl sudo dpkg --add-architecture i386 sudo apt-get update }}} Der in alten Anleitungen manchmal zu findende Tipp, stattdessen [packages:ia32-libs:] nachzuinstallieren, ist seit [:Saucy: 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 [ubuntu:MultiarchSpec:MultiArch] passend installiert. Wird man trotzdem mit einer Fehlermeldung konfrontiert, so deutet dies mit sehr hoher Wahrscheinlichkeit auf nicht gut gewartete [:Fremdquellen#Schaeden-an-der-Paketverwaltung:Fremdpakete] hin. {{{#!vorlage Befehl 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]: {{{#!vorlage Befehl 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) ... }}} {{{#!vorlage Warnung Dieser Parameter ignoriert lediglich die Prüfung der korrekten Architektur. Es gibt keine Garantie, dass ein so installiertes Paket auch einwandfrei funktioniert! }}} {{{#!vorlage 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: {{{#!vorlage Befehl sudo dpkg --add-architecture i386 sudo apt-get update sudo apt install PAKET }}} Für `PAKET` ist hier entsprechend die Datei einzusetzen. #tag: System, Hardware