Solution 1 :
"uname -m" est la commande que vous recherchez. Vous pouvez exécuter à la fois 32 bits et 64 bits sur des processeurs Intel et AMD modernes, donc "uname -p" ne va pas vous aider (en plus, cela ne fonctionne généralement pas ces jours-ci, ici core2 pense que la réponse à "uname -p" est "inconnu").
La recherche de l'existence de /usr/lib64 (comme cela a été suggéré) ne vous aidera pas non plus, car certains packages liés au matériel et au système installeront à la fois les bibliothèques 32 bits et 64 bits pour être du bon côté. Sur mon système (debian), le paquet fakeroot fait exactement cela.
Quant à la sortie de "uname -m", si c'est i386 ou i686 c'est 32 bits, si c'est x86_64 (ou alpha, ou ia64 ou une autre architecture 64 bits que je n'ai jamais vue :) c'est 64 bits.
(en passant, mon serveur FreeBSD 64 bits renvoie "amd64", ce qui peut être un peu étrange pour un Intel quadcore mais tout à fait compréhensible si vous connaissez l'historique de l'architecture x86 64 bits)
Solution 2 :
uname -a et recherchez x86_64. Si vous voulez savoir si votre processeur peut gérer 64 bits, cat /proc/cpuinfo et recherchez lm dans les drapeaux.
Solution 3 :
pour 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 bits
- i686 et/ou i386
64 bits
- aurait x86_64 dans uname -a sortie
Solution 4 :
Juste pour confondre les choses, vous pouvez exécuter un noyau 64 bits avec un espace utilisateur 32 bits, ce que je fais. Dans ce cas, uname -m
renvoie x86_64
mais je n'ai pas de bibliothèques 64 bits installées, donc la plupart des programmes 64 bits ne fonctionneront pas.
Donc, une fois que vous avez vérifié uname, vous devez rechercher /lib64/ld-linux-x86-64.so.2
, /lib64/libc-2.7.so
et /lib/ld-linux.so.2
, /lib/libc-2.7.so
pour voir si des bibliothèques 64 bits et 32 bits sont disponibles. Et pour être vraiment sûr, exécutez ces fichiers et voyez s'ils s'exécutent correctement.
Une autre information utile est la sortie de lsb_release -a
qui est inter-distribution et indiquera quels modules LSB spécifiques à l'architecture sont disponibles.
Solution 5 :
$> getconf LONG_BIT
Réponse :32 ou 64.