8 votos

Ejecutar uname -m da x86_64 en M1 Mac Mini

Cuando ejecuto uname -m en zsh (ejecutado a través de Terminal.app) en mi Mac Mini M1, la salida es x86_64, en lugar del esperado arm64. Esto está ocurriendo tanto en zsh como en bash. Esto está causando problemas para instalar ruedas nativas ARM con pip, que piensa que estoy ejecutando un sistema x86. No pude encontrar ninguna información en línea sobre esto, y me pregunto si es un error, o algo que he pasado por alto. ¿Alguna idea de qué está pasando? ¿Es este el comportamiento esperado? Estoy ejecutando macOS 11.3.1. La siguiente otra información es la salida de uname:

uname: Darwin

uname -a: Darwin macmini.local 20.4.0 Darwin Kernel Version 20.4.0: Thu Apr 22 21:46:41 PDT 2021; root:xnu-7195.101.2~1/RELEASE_ARM64_T8101 x86_64

uname -p: i386

7voto

Aaron Montgomery Puntos 496

Tuve un problema similar, que noté al intentar instalar Homebrew con soporte M1. El script de instalación de Homebrew utiliza uname -m para determinar qué versión de Homebrew instalar, y por eso me estaba dando la versión incorrecta (Intel) porque me detectaba como x86_64.

Resulta que mi problema estaba descrito en este comentario

No solo es si se ejecuta Terminal en Rosetta, sino también si el proceso que ejecuta el script resulta estar corriendo en Rosetta también. Si alguien ejecuta esto en un script desplegado por, digamos, un RMM que se está ejecutando a través de Rosetta, obtendrás x86_64

El problema era que mi bash en sí mismo había sido instalado por el antiguo Homebrew de Intel, y estaba corriendo a través de Rosetta.

$ file `which bash`
/usr/local/bin/bash: Mach-O ejecutable de 64 bits x86_64

Necesitaba cambiar al bash del sistema ejecutando

$ chsh -s /bin/bash

y reconfigurar mi $PATH de manera que /bin/bash fuera preferido. Ahora uname -m siempre me da el arm64 esperado.

5voto

Oskar Puntos 1242

Puedo reproducir lo que estás viendo en nuestros Macs en 11.2.3 y 11.3.1 - obtenemos arm64 / arm / arm64 de manera confiable a pesar de diferentes shells y configuraciones de homebrew (o la falta de estas) en cada uno.

bmike@mini ~ % sw_vers                 
ProductName:    macOS
ProductVersion: 11.3.1
BuildVersion:   20E241
bmike@mini ~ % /usr/bin/arch
arm64
bmike@mini ~ % /usr/bin/uname -p
arm
bmike@mini ~ % /usr/bin/uname -a
Darwin mini 20.4.0 Darwin Kernel Version 20.4.0: Thu Apr 22 21:46:41 PDT 2021; root:xnu-7195.101.2~1/RELEASE_ARM64_T8101 arm64

Elegir rosetta para ejecutar terminal cambia esto para un Mac estándar. Cierra y vuelve a abrir terminal.app, y luego obtengo i386 / i386 / x86_64 igual que reportaste.

Si miras abajo, verás que está habilitado lo cual lanzará un shell que reportará lo que estás viendo en lugar de los resultados "por defecto" que mostré arriba.

enter image description here

4 votos

Creo que quieres decir "No puedo reproducir (a menos que ejecute Terminal en Rosetta)."..?

0 votos

Gracias - problema resuelto.

3voto

dirich1337 Puntos 131

Tuve el mismo problema sin usar Rosetta.

Resultó que la razón era que instalé Homebrew antes de que tuviera soporte para M1. A pesar de que actualizo Homebrew con frecuencia, no cambió a la versión Apple Silicon cuando estuvo disponible.

Reinstalar Homebrew solucionó el problema para mí.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X