У меня есть приложение, которое существует только в 32-битной версии. Чтобы использовать его, я обычно нажимал 2
и 3
перед загрузкой Mac, чтобы он работал в 32-битном режиме. Однако некоторые приложения (64-битная версия, установленная ранее) всегда будут аварийно завершать работу в этом режиме.
Мне довелось увидеть решение, которое запускает 32-битное приложение в 64-битной системе:
arch -i386 theApp.app
Но я попытался с помощью arch: /Applications/theApp.app isn't executable
ошибкой исполняемого файла . Я проверил разрешение файла, и он показал drwxrwxr-x
, он должен быть исполняемым, а?
РЕДАКТИРОВАТЬ: Как сказал @ gd1, App.app - это папка (я думаю, в OSX она называется bundle), и поэтому она не является исполняемой.
Но мне все еще нужен обходной путь:
Как правильно запустить 32-разрядное приложение в моей 64-разрядной системе?
РЕДАКТИРОВАТЬ: я могу открыть приложение с arch
сейчас с помощью команды (спасибо @GordonDavisson):
arch -i386 /Applications/theApp.app/Contents/MacOS/theApp
Тем не менее, приложение запускается с ошибкой Components lost
, журнал показан ниже:
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).
Кстати, 闪讯.app
(я ненавижу это !! Но мне это нужно ..) используется для подключения к сети в моем университете в Китае.
РЕДАКТИРОВАТЬ:
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/Contents/MacOS/闪讯
/Applications/闪讯.app/Contents/MacOS/闪讯: Mach-O executable i386
а также
Kjuly@MacBook-Pro:~$ file /Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe
/Applications/闪讯.app/xlpppoe.kext/Contents/MacOS/xlpppoe: Mach-O object i386
Кажется, это только 32-разрядная версия и зависит от 32-разрядного ядра. О, я ооочень грустный. :(
Вот некоторые сведения, которые я получил с помощью @GordonDavisson, возможно, кому-то еще это понадобится.
DOC показывает некоторые методы для временного запуска с 32-разрядным ядром, чтобы использовать более старые расширения ядра для стороннего программного или аппаратного обеспечения.
И речь идет о «Совместимости с 64-битным ядром»:
Программное обеспечение сторонних производителей (например, механизм виртуализации) или аппаратное обеспечение (например, карта PCIe), использующее расширение ядра, совместимое с Mac OS X Server v10.5, может не работать на компьютерах Mac, использующих 64-разрядное ядро в Mac OS X v10.6. Обратитесь к поставщику программного или аппаратного обеспечения за обновленным расширением ядра, которое работает с 64-разрядным ядром в Mac OS X Server v10.6.
В качестве обходного пути вы можете временно запустить 32-разрядное ядро, чтобы использовать более старые расширения ядра для стороннего программного или аппаратного обеспечения.