Estoy tratando de ejecutar solo software nativo. Así que me gustaría poder monitorear si Rosetta 2 está disponible o no.
No estoy preguntando si Rosetta 2 está funcionando . Estoy preguntando si Rosetta 2 está presente , es capaz de funcionar.
Sé que puedo clasificar en la columna Tipo de la lista de procesos que se ve en la aplicación Monitor de actividad para encontrar un proceso que se esté ejecutando actualmente a través de Rosetta 2 o que se esté ejecutando de forma nativa ("Apple"). Pero quiero saber si la capacidad de Rosetta en general se ha instalado/activado en general en mi Mac, incluso si ninguna aplicación se está ejecutando actualmente de esa manera.
El instalador de Rosetta 2 parece instalar al menos tres archivos:
$ lsbom -f /Library/Apple/System/Library/Receipts/com.apple.pkg.RosettaUpdateAuto.bom
./Library/Apple/usr/lib/libRosettaAot.dylib 100755 0/0 322368 1011814917
./Library/Apple/usr/libexec/oah/libRosettaRuntime 100755 0/0 352176 1937385839
./Library/Apple/usr/share/rosetta/rosetta 100644 0/0 64 1875722922
Por lo tanto, probar la existencia de cualquiera de ellos (o el contenido en /usr/libexec/rosetta
) debería mostrarle si Rosetta realmente se instaló.
.spx
archivo exportado desde esa aplicación. ¿A qué se refiere en Información del sistema como un indicador de que Rosetta está disponible?Otra opción es verificar si el proceso oahd se está ejecutando;
pgrep oahd
Rosetta internamente se conoce como OAH . Si devuelve una identificación de proceso, sabrá que Rosetta está instalada. Yo uso el siguiente oneliner en mis guiones;
if [ $(/usr/bin/pgrep oahd >/dev/null 2>&1;echo $?) -eq 0 ]; then echo 'rosetta installed'; fi
if [ $(/usr/bin/pgrep oahd) ]; then echo 'rosetta installed'; fi
Esta simple línea de una línea simplemente imprimirá Sí o No:
/usr/bin/pgrep -q oahd && echo Yes || echo No
Si está utilizando Jamf, este código creará un atributo de extensión y lo completará en consecuencia:
#!/bin/sh
#
# reports status of rosetta install
RESULT=$(/usr/bin/pgrep -q oahd && echo Yes || echo No)
echo "<result>$RESULT</result>"
oahd
se ejecuta siempre (si Rosetta está instalado).
sin ladera
arch -arch x86_64 CMD
intento ejecutar CMD en modo x86. No estoy seguro de qué tipo de error obtiene si Rosetta no está instaladousuario415185
sin ladera
albahaca bourque
Shahar Gino
sin ladera