Solución 1:
"uname -m" es el comando que está buscando. Puede ejecutar tanto 32 bits como 64 bits en procesadores Intel y AMD modernos, por lo que "uname -p" no lo ayudará (además, en la mayoría de los casos no funciona en estos días, aquí core2 piensa que la respuesta a "uname -p" es "desconocido").
Buscar la existencia de /usr/lib64 (como se ha sugerido) tampoco lo ayudará, ya que algunos paquetes relacionados con el hardware y el sistema instalarán bibliotecas de 32 bits y 64 bits para estar seguros. En mi sistema (debian) el paquete fakeroot hace justamente eso.
En cuanto a la salida de "uname -m", si es i386 o i686 es de 32 bits, si es x86_64 (o alpha, o ia64 o alguna otra arquitectura de 64 bits que nunca he visto :) es de 64 bits.
(aparte de la diversión, mi servidor FreeBSD de 64 bits devuelve "amd64", lo que puede ser un poco extraño para un Intel quadcore pero totalmente comprensible si conoce la historia de la arquitectura x86 de 64 bits)
Solución 2:
uname -a y busque x86_64. Si desea saber si su CPU puede manejar 64 bits, cat /proc/cpuinfo y busque lm dentro de las banderas.
Solución 3:
para 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 y/o i386
- tendría x86_64 en uname -a salida
Solución 4:
Solo para confundir las cosas, puede ejecutar un kernel de 64 bits con un espacio de usuario de 32 bits, que es lo que estoy haciendo. En este caso, uname -m
devuelve x86_64
pero no tengo ninguna biblioteca de 64 bits instalada, por lo que la mayoría de los programas de 64 bits no se ejecutarán.
Entonces, una vez que marque uname, debe buscar /lib64/ld-linux-x86-64.so.2
, /lib64/libc-2.7.so
y /lib/ld-linux.so.2
, /lib/libc-2.7.so
para ver si las bibliotecas de 64 bits y 32 bits están disponibles. Y para estar realmente seguro, ejecute esos archivos y vea si se ejecutan correctamente.
Otra información útil es la salida de lsb_release -a
que es multidistribución e informará qué módulos LSB específicos de la arquitectura están disponibles.
Solución 5:
$> getconf LONG_BIT
Respuesta:32 o 64.