I cannot code with my Terminal in 32 Bit thanx to Rosetta 2

running macOS Ventura 13.7.6 on an Intel Mac (2.8 GHz Quad-Core Intel Core i7), and the arch command consistently returns i386, indicating your shell is running in 32-bit compatibility mode, despite /bin/zsh and Terminal being 64-bit (x86_64) capable


Now I'm not sure if I should disable Rosetta 2 on my Intel MacBook Pro

1. Disable System Integrity Protection (SIP)  and Boot into recovery mode

Since :

  • Disabling SIP can make your system more vulnerable to security threats. Make sure you understand the risks before disabling it.
  • After uninstalling Rosetta 2, you will need to reinstall any applications that rely on it to be able to run them on your Intel Mac.
  • The arch command returning i386 even after uninstalling Rosetta 2 might indicate a persistent 32-bit compatibility setting within your shell configuration. You might need to reset your shell configuration or create a new shell with 64-bit settings to resolve this issue. 


Please advice what todo, I've been changing shells, upgrading homebrew etc, nothing works!!

Do I need to go dark and buy a PC?


Posted on May 27, 2025 9:46 PM

Reply
7 replies
Sort By: 

May 28, 2025 6:24 PM in response to Pindify

The arch command output has been a source of confusion for many years.


Bash: arch command for OS X - Apple Community


Homebrew can sometimes cause issues, as can a bad PATH, as can other issues.


Rosetta 2 is pretty benign, and only gets involved when there’s no AArch64 code included in a Universal 2 executable image, just x86-64 64-bit code. And more importantly, only when trying to run that x86-64code on Apple silicon.


Rosetta 2 supports x86-64 64-bit code and does not support 32-bit x86 code.


Some related commands:

uname
sw_vers
sysctl machdep.cpu.brand_string
machine


The uname command is part of the UNIX spec. The arch command is not, nor is sw_vers or machine; those are platform-specific and potentially (or actually) non-portable.


So…. What is happening here, beyond the arch command?

Reply

May 28, 2025 7:10 PM in response to Servant of Cats

Servant of Cats wrote:


MrHoffman wrote:

Rosetta 2 is pretty benign, and only gets involved when there’s no AArch64 code included in a Universal 2 executable image, just x86-64 64-bit code.

Or if you are on an Apple Silicon Mac, and tick off the "Open using Rosetta" checkbox in a Universal application's "Get Info" dialog. Sometimes Apple Silicon users will force an application to run under Rosetta 2 translation so as to allow use of Intel-only plug-ins.

And more importantly, only when trying to run that x86-64code on Apple silicon.


Or when running Intel binaries on Apple silicon under the Virtualization Framework, if I were getting yet deeper into the weeds:



😉



None of which is applicable to running x86-64 binaries on an x86-64 Mac running x86-64 macOS, though.

Reply

May 28, 2025 12:16 AM in response to Servant of Cats

Thank you for your answer: here's an update: Your Mac has an Intel Core i7 CPU (so Rosetta 2 is NOT relevant, it’s only for Apple Silicon).



When you run arch, it returns i386, which is odd for an Intel Mac that should default to x86_64.



Trying to force arch -x86_64 doesn’t seem to change your shell’s reported architecture — it stays i386.



You tried launching Terminal with arch -x86_64 but Terminal isn’t launching or is missing files under some paths.



/bin/zsh is a universal binary supporting both x86_64 and arm64e (the latter irrelevant here).



Your login shell is set to /bin/zsh.



Running arch -x86_64 /bin/zsh --no-rcs gives a prompt, but then arch still reports i386 (this part seems inconsistent).


Reply

May 28, 2025 5:54 PM in response to Pindify

the arch command always returns i386 on Macs. If you want to confirm your architecture:

uname -m


Are you actually having an issue besides seeing i386 as the result of running arch? Is something actually not working? I assure you that the entire macOS system and its applications (including Terminal and all the shells) are 64-bit programs running on a 64-bit x86_64 architecture.


Fun fact - run the command machine, and the result is

i486

on my 2012 i7-3280QM


Reply

May 28, 2025 7:05 PM in response to MrHoffman

MrHoffman wrote:

Rosetta 2 is pretty benign, and only gets involved when there’s no AArch64 code included in a Universal 2 executable image, just x86-64 64-bit code.


Or if you are on an Apple Silicon Mac, and tick off the "Open using Rosetta" checkbox in a Universal application's "Get Info" dialog. Sometimes Apple Silicon users will force an application to run under Rosetta 2 translation so as to allow use of Intel-only plug-ins.


And more importantly, only when trying to run that x86-64code on Apple silicon.
Reply

I cannot code with my Terminal in 32 Bit thanx to Rosetta 2

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.