64 비트 OSX 10.7.2에서 32 비트 앱을 실행하려면 어떻게해야합니까?


15

32 비트 버전 만 존재하는 앱이 있습니다. 이것을 사용하기 위해 Mac을 부팅하기 전에 2&를 3함께 눌러 32 비트 모드로 실행했습니다. 그러나 일부 앱 (이전에 설치된 64 비트 버전)은 항상이 모드에서 충돌합니다.

64 비트 시스템에서 32 비트 앱을 실행하는 솔루션을 보았습니다.

arch -i386 theApp.app

그러나 나는 arch: /Applications/theApp.app isn't executable오류로 시도했다 . 파일 권한을 확인한 후 표시되었습니다 drwxrwxr-x. 실행 가능해야합니까?
편집 : @ gd1이 말했듯이 theApp.app는 폴더 (OSX에서는 번들이라고 부릅니다)이므로 실행 파일이 아닙니다.

그러나 여전히 해결 방법이 필요합니다.
64 비트 시스템에서 32 비트 앱을 올바르게 실행하려면 어떻게해야합니까?


편집 : 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).

BTW, 闪讯.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 비트 커널과의 호환성" 에 관한 것입니다 .

64 비트 커널을 사용하는 Mac에서는 Mac OS X Server v10.5와 호환되는 커널 확장을 사용하는 타사 소프트웨어 (예 : 가상화 엔진) 또는 하드웨어 (예 : PCIe 카드)가 작동하지 않을 수 있습니다. Mac OS X v10.6. Mac OS X Server v10.6에서 64 비트 커널과 작동하는 업데이트 된 커널 확장에 대해서는 소프트웨어 또는 하드웨어 공급 업체에 문의하십시오.

이 문제를 해결하기 위해 일시적으로 32 비트 커널로 시작하여 타사 소프트웨어 또는 하드웨어에 이전 커널 확장을 사용할 수 있습니다.


OS X의 버전은 무엇입니까?
skub

@skub 10.7.2. :)
Kjuly

1
OSX를 잘 모르지만 "arch"는 실행 파일이 인수로 주어질 것으로 예상하고 theApp.app는 폴더입니다 (보시다시피, 앞에 'd'문자가 있음) 권한 문자열의 시작). 그 안에 있는 실행 파일을 제공하기 위해 "콘텐츠> MacOS"
gd1

@ gd1 나중에, 당신 말이 맞아요! 이제 32 비트 모드로 실행하는 방법이 궁금합니다. :)
Kjuly

답변:


19

OS X에는 전체 64/32 비트 모드가 없습니다. 시작될 때 "최상의"모드로 개별 프로그램을 실행합니다. 개최 32같은 컴퓨터가 부팅은 32 비트 모드에서의 커널 실행을하지만,이 모드 프로그램이 실행 무엇을 함께 할 수 없다. OS X 행복하게 64 비트 커널에서 32 비트 모드에서 프로그램을 실행하거나 프로그램 32 비트 커널에서 64 비트 모드로

프로그램에 32 비트 코드 만 포함되어 있으면 특별한 작업을 수행하지 않아도 32 비트 모드로 실행됩니다. file실행 파일 (일반적으로 AppName.app/Contents/MacOS/AppName)에서 명령을 실행하여이를 확인할 수 있습니다 . 몇 가지 예는 다음과 같습니다.

$ file /Applications/Chess.app/Contents/MacOS/Chess
/Applications/Chess.app/Contents/MacOS/Chess: Mach-O universal binary with 2 architectures
/Applications/Chess.app/Contents/MacOS/Chess (for architecture x86_64): Mach-O 64-bit executable x86_64
/Applications/Chess.app/Contents/MacOS/Chess (for architecture i386):   Mach-O executable i386
$ file /Applications/VLC.app/Contents/MacOS/VLC
/Applications/VLC.app/Contents/MacOS/VLC: Mach-O universal binary with 2 architectures
/Applications/VLC.app/Contents/MacOS/VLC (for architecture i386):   Mach-O executable i386
/Applications/VLC.app/Contents/MacOS/VLC (for architecture ppc):    Mach-O executable ppc
$ file /Applications/Adobe\ Reader\ 9/Adobe\ Reader.app/Contents/MacOS/AdobeReader 
/Applications/Adobe Reader 9/Adobe Reader.app/Contents/MacOS/AdobeReader: Mach-O executable i386

... Chess.app에는 32 비트 및 64 비트 Intel 코드 (각각 "i386"및 "x86_64")가 포함되어 있고 VLC.app에는 32 비트 Intel 및 32 비트 PowerPC ( "ppc")가 포함되어 있습니다. 코드 및 Adobe Reader에는 32 비트 Intel 코드 만 포함됩니다.

시스템 정보의 시스템 보고서 (소프트웨어-> 응용 프로그램 섹션에 있음)에서이 정보 중 일부 (명확한 세부 사항은 아니지만)를 얻을 수도 있습니다.

응용 프로그램에 32 비트 및 64 비트 코드가 모두있는 경우, Finder의 정보 입수 창에서 사용할 코드를 선택하거나 ( "32 비트 모드에서 열기"체크 상자가 있음) arch실행 파일에 대한 명령 (예 :) arch -i386 /Applications/theApp.app/Contents/MacOS/theApp. 그러나 일반적 으로이 작업을 수행 할 필요는 없습니다 .OS는 최상의 모드를 선택하는 것이 좋습니다.

(모드 선택을 수동으로 재정의해야하는 한 가지 예는 플러그인 또는 라이브러리 호환성을위한 것입니다. 32 & 64 비트 앱이 있지만 32 비트 전용 플러그인 또는 라이브러리를로드 할 수 있어야하는 경우 프로그램을 32 비트 모드로 강제 실행합니다.)

32 비트 커널에서 바로 실행되지 않는 64 비트 프로그램이있는 경우 이상한 버그가 있거나 낯선 사람이있을 수 있습니다. 구체적인 세부 정보를 제공하면 실제로 무엇이 잘못되었는지 파악할 수 있습니다.

편집 : 응용 프로그램은 32 비트 전용이며 32 비트 전용 커널 확장 (kext)을 설치합니다. 32 비트 앱 부분은 모든 커널 모드에서 실행될 수 있지만 32 비트 kext는 32 비트 커널에만로드 할 수 있습니다 (커널의 플러그인과 유사 함). 당신은 채 32 비트 모드에서 커널을 실행할 수 32시작시 또는 영구적으로 명령 sudo systemsetup -setkernelbootarchitecture i386(애플의 참조 KB # HT3773을 ).

32 비트 모드에서 앱을 열기 위해 특별한 작업을 수행 할 필요는 없습니다. 이것이 포함 된 유일한 형식이기 때문에 시작 방법에 관계없이 해당 모드에서 실행됩니다 (특히 arch명령이 필요 하지 않음 ).

32 비트 커널에서 제대로 실행되지 않는 64 비트 앱이있는 경우 별도의 문제이므로 다른 질문을 게시하는 것이 좋습니다.


"One instance where you would need to manually override the mode selection is for plugin or library compatibility"32 비트 모드에서만 앱을 실행해야 할 수도 있습니다. 항상 충돌하는 프로그램은 MS Word(지금 대신 LaTeX를 사용합니다) 32 비트 모드가 충돌을 일으키는 지 확실하지 않습니다. 개인적인 추측 일뿐입니다. 그리고 arch -i386 /Applications/theApp.app/Contents/MacOS/theApp내가 원하는 것입니다! 그때 시도해 볼게요! 감사!! : D
Kjuly

불행히도 Components lost오류로 실패했습니다 . :( 로그를 Q에 붙여 넣습니다. 미리 감사드립니다!
Kjuly

1
이 로그는 커널 확장 (.kext)을로드하려고 시도하고 있음을 나타냅니다. 즉, 커널 모드 중요합니다 (기본적으로 커널 플러그인과 유사 함). "요청 된 아키텍처 / 실행 파일을 찾을 수 없음"비트는 커널이 실행되는 모드입니다. 먼저 kext가 어떤 모드를 가지고 있는지 알아 보겠습니다.file /tmp/xlpppoe.kext/Contents/MacOS/xlpppoe (또는 /Applications/Èó™ËÆØ.app/xlpppoe.kext에있을 수 있음). 32 비트 전용 인 경우 32 비트 모드에서 커널을 시작해야합니다 ( 여기 참조 ).
Gordon Davisson

안녕하세요 @ Gordon, 나는 내 질문에 정보를 넣었다. 어쩌면 내 마지막 부분을 답의 일부로 사용할 수 있습니다. : p 어쨌든 감사합니다 !!
Kjuly
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.