Estoy en un M3 Pro, MacOS 14.2. Cuando intento echo $MACHTYPE
(en una terminal -zsh
predeterminada) la salida es x86_64
, mientras que uname -mp
devuelve arm64 arm
. Los documentos de Zsh dicen que MACHTYPE
debería ser "el tipo de máquina (clase de microprocesador o modelo de máquina), determinado en tiempo de compilación." ¿Por qué mi tipo de máquina en tiempo de compilación está establecido en x86_64
? No estoy ejecutando Terminal con Rosetta. Tal vez una pregunta más sólida, ¿cuál es el uso previsto del parámetro de la terminal MACHTYPE
en MacOS basado en ARM?
Respuesta
¿Demasiados anuncios?He resaltado la parte importante en el texto que tomaste de la documentación de ZSH:
the machine type (microprocessor class or machine model), como se determinó en tiempo de compilación.
Esto significa que Apple compiló zsh
en una máquina Intel, tanto para x64 como para arm64. También significa que el uso práctico de MACHTYPE
es bastante limitado y (si necesitas conocer la arquitectura en tiempo de ejecución) uname -m
es la opción más precisa.
PD: En bash
, MACHTYPE
se define como "describe el tipo de sistema en el que se está ejecutando bash". Esto explica por qué en /bin/bash
, obtengo arm64-apple-darwin23
, en Homebrew bash
es aarch64-apple-darwin23.0.0
, y en Homebrew zsh
es arm
. También significa que debes verificar la shell utilizada al seguir ejemplos encontrados en línea. Si necesitas el equivalente de MACHTYPE
de bash
en zsh
, utiliza CPUTYPE
("El tipo de máquina (clase de microprocesador o modelo de máquina), como se determina en tiempo de ejecución.").