Warum wird die i386-Version der Software auf einem x86_64-System installiert?

7

Warum wird die i386-Version der meisten Software zusammen mit der x86_64-Version auf einem CentOS 64-Bit-System installiert?

# yum install php-xml
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Setting up Install Process    
Package php-xml-5.3.12-5.el5.art.x86_64 already installed and latest version    
Package php-xml-5.3.12-5.el5.art.i386 already installed and latest version    
Nothing to do
Gaia
quelle

Antworten:

4

CentOS hat eine Antwort auf seiner FAQ- Seite darüber, es ist für die Kompatibilität mit 32-Bit-Sachen.

Um exclude = *.i?86das Problem zu beheben, heißt es in der Antwort, dass es zu Ihrer yum.conf hinzugefügt werden soll. Wenn Sie jedoch i386 rpms installiert haben, werden Updates unterbrochen. Stellen Sie daher sicher, dass Sie sie entfernen, bevor Sie dies tun.

Ich bevorzuge die Einstellung, multilib_policy=bestso dass Sie im Oddball-Fall etwas 32-Bit benötigen, es wird installiert, aber nicht standardmäßig.

multilib_policy - Kann auf 'all' oder 'best' gesetzt werden. Alle Mittel installieren alle möglichen Bögen für jedes Paket, das Sie installieren möchten. Daher installiert yum install foo foo.i386 und foo.x86_64 auf x86_64, sofern verfügbar. Am besten bedeutet, nur den besten Bogen für diese Plattform zu installieren.

Mark McKinstry
quelle
Okay, das ist nützlich. ist multilib_policy = am besten allgemein sicher? Ich möchte keine Kopfschmerzen haben, um Speicherplatz zu sparen ... und wo setze ich multilib_policy? yum.conf? Vielen Dank!
Gaia
@Gala multilib_policy = am besten ist sicher. Ich hatte Kopfschmerzen auf der ganzen Linie, als ich die i686-RPMs nicht entfernte, die Updates brachen, und mehr Kopfschmerzen, als ich versuchte, etwas zu installieren, das glibc.i686 benötigte. Wenn Sie die i386-RPMs nicht möchten, können Sie sie mithilfe der Anweisungen von CentOS entfernen und dann die multilib_policy hinzufügen.
Mark McKinstry
Ich denke, die Probleme, die ich jetzt habe, hängen mit meinem Setup zusammen. Würde es Ihnen etwas ausmachen, sich einzuschalten, wenn Sie Ideen haben? danke unix.stackexchange.com/questions/47287/…
Gaia
Die Zeile do multilib_policy existiert also überhaupt nicht in yum.conf. Muss ich sie hinzufügen?
@rafael Ja; Nicht alle möglichen Konfigurationszeilen befinden sich in der Datei. "Best" ist die Standardeinstellung, wenn in neueren Versionen von yum nichts angegeben ist, "all" jedoch die ältere Standardeinstellung. (In der aktuellen Version von RHEL 6 und in allen neueren Versionen von Fedora wird standardmäßig "best" verwendet.)
Mattdm
2

Es ist für die Kompatibilität. Diese Pakete werden benötigt, um 32-Bit-Software auf 64-Bit-Systemen auszuführen.

Nikolaus
quelle
1

Wenn Sie dieses Verhalten nicht möchten, müssen Sie package.x86_64stattdessen installieren . Die meisten i386-Pakete sind vorhanden, da sie eine gewisse Abhängigkeit von einem Programm erfüllen müssen, das noch 32-Bit ist (z. B. Firefox).

Nils
quelle
Ich verstehe, dass auf einen Desktop-Computer angewendet, aber auf einen Server? Es hat keine GUI, nur Server-Software und AFAIK es ist alles x64 ...
Gaia
@Gaia Nicht alle - auch auf einem Server. Versuchen Sie es yum erase PACKAGE.i386 .... Bei den meisten Paketen funktioniert die Deinstallation - bei anderen gibt es einen riesigen Abhängigkeitsbaum. Sie können dies ohne Sorgen versuchen - Sie müssen die Deinstallation mit "y" bestätigen.
Nils