Habt ihr euch schon einmal gewundert warum auf eurem 64 bit Centos immer auch 32 bit Pakete installiert werden?
Wenn ihr wissen möchtet warum dies geschieht und wir ihr diese überflüssigen Pakete am schnellsten entfernen könnt, dann benutzt einfach die folgende Anleitung:
Zunächst einmal solltet ihr feststellen ob wirklich ein 64bit OS läuft, dazu in der Shell folgenden Befehl ausführen:
uname -a
dieses listet den verwendeten Kernel auf:
Linux hostname 2.6.18-194.8.1.el5.028stab070.2xen #1 SMP Tue Jul 6 15:00:04 MSD 2010 x86_64 x86_64 x86_64 GNU/Linux
Am Ende der Zeile sieht man dass ein 64bit Kernel läuft.
Soweit so gut, nun lassen wir uns die installierten 32bit Pakete mit folgendem Befehl auflisten:
rpm -qa --queryformat '%{NAME} %{VERSION}-%{RELEASE} %{ARCH}\n' | column -t | grep -vE '(x86_64)|(noarch)|(none.$)'
Nun erhält man eine (lange) Liste mit installierten 32bit Paketen.
Wenn man sich aus dieser Liste einen Paketnamen raus pickt und folgenden Befehl ausführt:
rpm -q --queryformat '%{NAME}.%{ARCH}\n' mkinitrd
mkinitrd.x86_64
mkinitrd.i386
sieht man in der Ausgabe wie gesagt, dass zu diesen Paketen je ein 64bit und ein 32bit Paket installiert ist.
Diese sind in der Regel völlig unnütz. Man würde sie nur dann benötigen wenn man selbst eine Source kompilieren möchte und diese zwingend 32bit Libraries benötigt.
Wenn man nur die Centos Repositories nutzt, dann wird man nie in die Verlegenheit kommen diese Pakete zu benötigen.
Ok, wir möchten diese also nun gerne los werden, nur wie geht das am Besten?
Hier gibt es verschiedene Lösungen, zum einen kann man die Liste hinter einen ‘yum remove’ Befehl hängen. Oder aber – und das ist der schnelle Weg – wir entfernen einfach den Kompiler, dann werden alle Abhängigkeiten auch entfernt :)
Dazu führen wir folgenden Befehl aus:
yum remove glibc.i686
dieser entfernt dann alle betroffenen i386/i686 Pakete.