मेरे पास एक ऐप है जो केवल 32 बिट संस्करण में मौजूद है। इसका उपयोग करने के लिए, मैंने मैक को बूट करने से पहले एक साथ दबाया 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-बिट कर्नेल पर निर्भर करता है। ओह, मैं बहुत दुखी हूँ। :(
यहाँ कुछ infos हैं जो मुझे @GordonDavisson की मदद से मिले हैं, शायद किसी और को इसकी आवश्यकता है।
डॉक्टर से पता चलता है अस्थायी रूप से करने के लिए कुछ तरीकों 32-बिट कर्नेल के साथ शुरू तीसरे पक्ष के सॉफ्टवेयर या हार्डवेयर के लिए पुराने कर्नेल एक्सटेंशन का उपयोग करने के लिए।
और यह "64-बिट कर्नेल के साथ संगतता" के बारे में है :
तृतीय-पक्ष सॉफ़्टवेयर (जैसे वर्चुअलाइज़ेशन इंजन) या हार्डवेयर (जैसे PCIe कार्ड) जो कर्नेल एक्सटेंशन पर निर्भर करता है जो Mac OS X Server v10.5 के साथ संगत था, मैक पर काम नहीं कर सकता है जो 64-बिट कर्नेल का उपयोग करता है मैक ओएस एक्स v10.6। एक अद्यतन कर्नेल एक्सटेंशन के लिए सॉफ़्टवेयर या हार्डवेयर विक्रेता से संपर्क करें जो मैक ओएस एक्स सर्वर v10.6 में 64-बिट कर्नेल के साथ काम करता है।
वर्कअराउंड के रूप में, आप अपने तृतीय-पक्ष सॉफ़्टवेयर या हार्डवेयर के लिए पुराने कर्नेल एक्सटेंशन का उपयोग करने के लिए 32-बिट कर्नेल के साथ अस्थायी रूप से शुरू कर सकते हैं।