"uname -m" es el comando que estás buscando. Puede ejecutar 32 bits y 64 bits en procesadores Intel y AMD modernos, por lo que "uname -p" no lo ayudará (además, en su mayoría 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 exactamente eso.
En cuanto a la salida de "uname -m", si es i386 o i686 es de 32 bits, si es x86_64 (o alfa, o ia64 o alguna otra arquitectura de 64 bits que nunca he visto :) es de 64 bits.
(como una diversión aparte, 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)
¿esto le dice la arquitectura de instalación o la arquitectura real de la CPU? Por ejemplo, si instaló un sistema operativo de 32 bits en una CPU de 64 bits, ¿esto devolvería i686 o x86_64?
monkut
15
uname -a y busca x86_64. Si desea saber si su CPU puede manejar 64 bits, cat / proc / cpuinfo y busque lm dentro de las banderas.
Solo para confundir las cosas, puedes ejecutar un kernel de 64 bits con una tierra de usuario de 32 bits, que es lo que estoy haciendo. En este caso, uname -mregresa x86_64pero no tengo ninguna biblioteca de 64 bits instalada, por lo que la mayoría de los programas de 64 bits no se ejecutarán.
Así que una vez que haces uname, tiene que buscar /lib64/ld-linux-x86-64.so.2, /lib64/libc-2.7.soy /lib/ld-linux.so.2, /lib/libc-2.7.sopara ver si las bibliotecas de 64 bits y de 32 bits están disponibles. Y para asegurarse realmente, ejecute esos archivos y vea si se ejecutan correctamente.
Otra información útil es la salida de la lsb_release -acual es una distribución cruzada e informará qué módulos LSB específicos de la arquitectura están disponibles.
uname -m solo le dará la 'arquitectura' / arquitectura en ejecución del núcleo. NO le dirá si está ejecutando una distribución GNU / Linux de 32 bits en una CPU con capacidad de 64 bits.
Para conocer la capacidad de su CPU:
cat /proc/cpuinfo
El indicador 'LM' debe estar presente en los sistemas de 64 bits ya que representa 'MODO LARGO' (Extensiones de 64 bits, AMD64 de AMD o EM64T de Intel).
mkdir / usr / lib128 && echo "¡Mira, tengo una computadora de 128 bits!"
niXar
0
La orden de Brad Gilbert tenía un error perl. Lo arreglé y el siguiente comando funciona: cat / proc / cpuinfo | grep ^ banderas | perl -e '$ = <>; print ($ ? "x86_64 \ n": "no x86_64 \ n")'
Respuestas:
"uname -m" es el comando que estás buscando. Puede ejecutar 32 bits y 64 bits en procesadores Intel y AMD modernos, por lo que "uname -p" no lo ayudará (además, en su mayoría 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 exactamente eso.
En cuanto a la salida de "uname -m", si es i386 o i686 es de 32 bits, si es x86_64 (o alfa, o ia64 o alguna otra arquitectura de 64 bits que nunca he visto :) es de 64 bits.
(como una diversión aparte, 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)
fuente
uname -a y busca x86_64. Si desea saber si su CPU puede manejar 64 bits, cat / proc / cpuinfo y busque lm dentro de las banderas.
fuente
para RedHat / CentOS:
32 bits
64 bits
fuente
Solo para confundir las cosas, puedes ejecutar un kernel de 64 bits con una tierra de usuario de 32 bits, que es lo que estoy haciendo. En este caso,
uname -m
regresax86_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.Así que una vez que haces uname, tiene que 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 de 32 bits están disponibles. Y para asegurarse realmente, ejecute esos archivos y vea si se ejecutan correctamente.Otra información útil es la salida de la
lsb_release -a
cual es una distribución cruzada e informará qué módulos LSB específicos de la arquitectura están disponibles.fuente
lsb_release -a
no da salida a la arquitectura de espacio de usuario$> getconf LONG_BIT
Respuesta: 32 o 64.fuente
Otra forma de hacerlo es preguntarle a Perl qué compilador dijo que el tamaño de un entero largo es:
vs.
O, si tienes instalado gcc, lo mismo en C:
vs.
:-)
fuente
Como un duplicado de:
Linux + cómo verificar la versión de Linux 32 Bit o 64 Bit
uname -m solo le dará la 'arquitectura' / arquitectura en ejecución del núcleo. NO le dirá si está ejecutando una distribución GNU / Linux de 32 bits en una CPU con capacidad de 64 bits.
Para conocer la capacidad de su CPU:
El indicador 'LM' debe estar presente en los sistemas de 64 bits ya que representa 'MODO LARGO' (Extensiones de 64 bits, AMD64 de AMD o EM64T de Intel).
fuente
fuente
Si tienes / usr / lib64 estás ejecutando x86_64 ..
fuente
La orden de Brad Gilbert tenía un error perl. Lo arreglé y el siguiente comando funciona: cat / proc / cpuinfo | grep ^ banderas | perl -e '$ = <>; print ($ ? "x86_64 \ n": "no x86_64 \ n")'
fuente