Lösung 1:
"uname -m" ist der gesuchte Befehl. Sie können sowohl 32-Bit als auch 64-Bit auf modernen Intel- und AMD-Prozessoren ausführen, daher wird Ihnen "uname -p" nicht helfen (außerdem funktioniert es heutzutage meistens nicht, hier denkt Core2 die Antwort auf "uname -p". ist "unbekannt").
Die Suche nach /usr/lib64 (wie vorgeschlagen) wird Ihnen auch nicht helfen, da einige Hardware- und systembezogene Pakete sowohl 32-Bit- als auch 64-Bit-Bibliotheken installieren, um auf der sicheren Seite zu sein. Auf meinem (Debian-)System macht das fakeroot-Paket genau das.
Was die Ausgabe von "uname -m" angeht, wenn es i386 oder i686 ist, ist es 32-Bit, wenn es x86_64 ist (oder Alpha oder ia64 oder eine andere 64-Bit-Architektur, die ich noch nie gesehen habe :), ist es 64-Bit.
(als Spaß beiseite, mein 64-Bit-FreeBSD-Server gibt "amd64" zurück, was für einen Intel-Quadcore etwas seltsam sein mag, aber völlig verständlich ist, wenn Sie die Geschichte der x86-64-Bit-Architektur kennen)
Lösung 2:
uname -a und suchen Sie nach x86_64. Wenn Sie wissen möchten, ob Ihre CPU 64-Bit verarbeiten kann, cat /proc/cpuinfo und suchen Sie in den Flags nach lm.
Lösung 3:
für RedHat/CentOS:
$ uname -a
Linux cs-centos 2.6.18-92.1.22.el5 #1 SMP Tue Dec 16 12:03:43 EST 2008 i686 athlon i386 GNU/Linux
32-Bit
- i686 und/oder i386
64-Bit
- hätte x86_64 in uname -a Ausgabe
Lösung 4:
Nur um die Dinge zu verwirren, Sie können einen 64-Bit-Kernel mit einem 32-Bit-Userland ausführen, was ich tue. In diesem Fall uname -m
gibt x86_64
zurück aber ich habe keine 64-Bit-Bibliotheken installiert, daher werden die meisten 64-Bit-Programme nicht ausgeführt.
Sobald Sie also uname überprüft haben, müssen Sie nach /lib64/ld-linux-x86-64.so.2
suchen , /lib64/libc-2.7.so
und /lib/ld-linux.so.2
, /lib/libc-2.7.so
um zu sehen, ob 64-Bit- und 32-Bit-Bibliotheken verfügbar sind. Und um sicherzugehen, führen Sie diese Dateien aus und prüfen Sie, ob sie korrekt ausgeführt werden.
Eine weitere nützliche Information ist die Ausgabe von lsb_release -a
Das ist distroübergreifend und meldet, welche architekturspezifischen LSB-Module verfügbar sind.
Lösung 5:
$> getconf LONG_BIT
Antwort:32 oder 64.