Tengo una aplicación que solo existe una versión de 32 bits. Para usarlo, solía presionar 2
& 3
juntos antes de arrancar la Mac, por lo que se ejecutará en modo de 32 bits. Sin embargo, algunas aplicaciones (la versión de 64 bits que se instaló antes) siempre se bloquean en este modo.
Me pasó a ver una solución que aplicación de ejecución de 32 bits en el sistema de 64 bits:
arch -i386 theApp.app
Pero lo intenté con arch: /Applications/theApp.app isn't executable
error. Revisé el permiso del archivo y se muestra drwxrwxr-x
, debe ser ejecutable, ¿eh?
EDITAR : como dijo @ gd1, theApp.app es una carpeta (creo que se llama paquete en OSX) y, por lo tanto, no es ejecutable.
Pero aún necesito una solución alternativa:
¿cómo puedo ejecutar mi aplicación de 32 bits en mi sistema de 64 bits correctamente?
EDITAR : ahora puedo abrir la aplicación arch
con el comando (gracias @GordonDavisson):
arch -i386 /Applications/theApp.app/Contents/MacOS/theApp
Sin embargo, la aplicación de gestión con Components lost
error, el registro de muestra a continuación:
Kjuly@MacBook-Pro:/Applications$ arch -i386 闪讯.app/Contents/MacOS/闪讯
2012-01-08 16:17:53.381 闪讯[472:1107] isActive: ioctl to kernel socket error 2 ,No such file or directory
2012-01-08 16:17:53.436 闪讯[472:1107] The AppPath = /Applications/闪讯.app
2012-01-08 16:17:53.437 闪讯[472:1107] The src path = /Applications/Èó™ËÆØ.app/xlpppoe.kext
2012-01-08 16:17:58.892 闪讯[472:1107] Set Driver Ok...
/tmp/xlpppoe.kext failed to load - (libkern/kext) requested architecture/executable not found; check the system/kernel logs for errors or try kextutil(8).
Por cierto, el 闪讯.app
(¡lo odio! Pero lo necesito ...) se utiliza para conectarse a la red en mi universidad en China.
EDITAR :
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/Contents/MacOS/闪讯
/Applications/闪讯.app/Contents/MacOS/闪讯: Mach-O executable i386
y
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe
/Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe: Mach-O object i386
Parece que es solo de 32 bits y depende del núcleo de 32 bits. Oh, estoy muuuy triste. :(
Acá algunas informaciones que consiguió con la ayuda de @GordonDavisson, tal vez alguien más lo necesita.
El DOC muestra algunos métodos para iniciar temporalmente el kernel de 32 bits para usar extensiones de kernel más antiguas para el software o hardware de terceros.
Y se trata de "Compatibilidad con el núcleo de 64 bits" :
El software o hardware de terceros (como un motor de virtualización) (como una tarjeta PCIe) que se basa en una extensión de kernel que era compatible con Mac OS X Server v10.5 puede no funcionar en Mac que usan el kernel de 64 bits en Mac OS X v10.6. En contacto con el proveedor de software o hardware para una extensión kernel actualizado que funciona con el kernel de 64 bits en Mac OS X v10.6 servidor.
Como solución alternativa, puede iniciar temporalmente con el kernel de 32 bits para usar extensiones de kernel más antiguas para su software o hardware de terceros.
Respuestas:
OS X no tiene un modo general 64/32 bits; se lleva a cabo programas individuales en cualquier modo parece "mejor" cuando se iniciaron. Mantener 3y 2mientras la computadora arranca hará que su núcleo se ejecute en modo de 32 bits, pero esto no tiene nada que ver con el modo en que se ejecutan los programas. OS X puede ejecutar programas en modo de 32 bits bajo un núcleo de 64 bits, o programas en modo de 64 bits bajo un núcleo de 32 bits.
Si su programa solo incluye código de 32 bits, se ejecutará en modo de 32 bits sin que tenga que hacer nada especial. Puede verificar esto ejecutando el
file
comando en el ejecutable (generalmente en AppName.app/Contents/MacOS/AppName. Aquí hay algunos ejemplos:... que me dice que Chess.app incluye código Intel de 32 bits y 64 bits ("i386" y "x86_64", respectivamente), VLC.app incluye Intel de 32 bits y PowerPC de 32 bits ("ppc") código, y Adobe Reader sólo incluye código de 32 bits de Intel.
También puede obtener parte de esta información (aunque no con detalles explícitos) del informe del sistema de Información del sistema (en la sección Software -> Aplicaciones).
Si una aplicación tiene código de 32 y 64 bits, puede seleccionar cuál usar en la ventana Obtener información del Finder para la aplicación (habrá una casilla de verificación "Abrir en modo de 32 bits"), o usando la casilla
arch
comando en el ejecutable (por ejemploarch -i386 /Applications/theApp.app/Contents/MacOS/theApp
). Pero normalmente no debería necesitar hacer esto, el sistema operativo hace un buen trabajo al elegir el mejor modo.(Una instancia en la que necesitaría anular manualmente la selección de modo es para la compatibilidad del complemento o la biblioteca. Si tiene una aplicación de 32 y 64 bits, pero necesita poder cargar un complemento o biblioteca de solo 32 bits, tendrá para forzar al programa a ejecutarse en modo de 32 bits).
Si tiene programas de 64 bits que no se ejecutarán directamente en un núcleo de 32 bits, tienen algún tipo de error extraño o hay algo aún más extraño. Si proporciona los detalles específicos, podríamos ser capaces de descubrir qué es lo que realmente está yendo mal.
EDITAR: Parece que la aplicación es solo de 32 bits e instala una extensión de kernel de solo 32 bits (kext). Si bien la parte de la aplicación de 32 bits puede ejecutarse en cualquier modo de kernel, los kexts de 32 bits solo pueden cargarse en un kernel de 32 bits (es como un complemento para el kernel). Puede ejecutar el kernel en modo de 32 bits manteniendo presionado 3y 2al inicio, o permanentemente con el comando
sudo systemsetup -setkernelbootarchitecture i386
(consulte KB # HT3773 de Apple ).Tenga en cuenta que no debería ser necesario hacer nada especial para abrir la aplicación en modo de 32 bits; Como ese es el único formato incluido, se ejecutará en ese modo sin importar cómo se inicie (en particular, el
arch
comando no es necesario).Si tiene aplicaciones de 64 bits que no se ejecutan correctamente en un kernel de 32 bits, ese es un problema separado y le recomendaría publicar otra pregunta al respecto.
fuente
"One instance where you would need to manually override the mode selection is for plugin or library compatibility"
este podría ser el caso, necesito ejecutar mi aplicación solo en modo de 32 bits. El programa que siempre se bloquea esMS Word
(ahora uso LaTeX en su lugar), no estoy seguro de si el modo de 32 bits causa el bloqueo o no, solo una suposición personal. Yarch -i386 /Applications/theApp.app/Contents/MacOS/theApp
es lo que quiero! Voy a intentarlo entonces! ¡¡Gracias!! : DComponents lost
error. :( me pegue el registro a mis Q. Gracias de antemano!file /tmp/xlpppoe.kext/Contents/MacOS/xlpppoe
(o puede estar en /Applications/Èó ________________ËÆØ.app/xlpppoe.kext). Si solo es de 32 bits, deberá iniciar el núcleo en modo de 32 bits (consulte aquí ).