16

I've recently started using a Silicon MacBook Pro 13 (i.e. one with non-Intel processor). I have found installing some software difficult, for example installing Python through Homebrew and installing Python packages through Pip. Also, for some software there exist ports to the new architecture, but these ports contain bugs, for example, the Tensorflow package for Python. I also use an IDE that runs some Python commands and some Terminal commands for me, and I find it very difficult to manage the usage of Rosetta 2 for these commands.

Is there a way to set up my Mac so that all software behaves as it would on an Intel processor? For example by using Rosetta 2 for every processor instruction? I understand that would mean substantial performance losses, but I would be happy to accept these.

3 Answers 3

16
  1. In Finder, go to /Applications/Utilities/ (or press CMD+Shift+U).

  2. Select "Terminal.app"

  3. Press CMD+I (capital i) for "Get Info"

  4. Check box for "Open using Rosetta"

As shown here:

enter image description here

After that, any process in Terminal will behave as if it is on an Intel Mac. This is the best way to run brew right now, and they have said that there will be a process to move over to ARM when the time comes.

If there are other apps that are compiled for both Apple Silicon and Intel, but you always want to run them under Rosetta, repeat the "Get Info" » "Open in Rosetta" process for each app.

2
  • 1
    Thank you. Your answer explains how to run Homebrew using Rosetta. This is how I did it on my machine. My problem is that when I install Python modules and run them in my Rosetta terminal, some of them generate error messages pointing to a wrong architecture. I suspect that is because I installed an Intel64 module that is now being run on Arm64. I don't know how to apply Rosetta here. Therefore, I would like to apply Rosetta globally to everything that is run on my machine. Can you comment if this is possible?
    – user505117
    Commented Dec 29, 2020 at 17:14
  • 2
    As for running Rosetta for everything, no, I do not think that is possible. You can preface a specific command with arch -x86_64. For example, if you wanted to run the date command under Rosetta, you could use such as arch -x86_64 date. I am not sure if there is a way for you to use that to help your situation.
    – TJ Luoma
    Commented Dec 29, 2020 at 21:59
5

Sharing my experience from installing brew, node, mysql and php.

I hope, it will be applicable for others also:

  1. Open Finder and navigate to Application/ Utilities
  2. Duplicate the terminal application by clicking with two fingers on the app and rename it to Rosetta Terminal
  3. Now right click on Rosetta Terminal and click on Get Info
  4. Now from the Get info menu, check "Open using Rosetta" option
  5. Run command arch in both terminals
  6. Make sure, you get i386 on Rosetta Terminal (Intel processor) and arm64 on Native Terminal (Apple Silicon)
  7. Always install all the applications/packages in the Rosetta Terminal (e.g. brew, node) and use them in Native terminal.

In my experience, you must follow step 7 - otherwise you may get an installation error.

Source - Chris Gradwohl's blog


Go through Chris Gradwohl's blog and you will not regret it.

P.S. Be aware, Rosetta terminal will behave the same as the native terminal - for that just select the checkbox (Open using Rosetta) again (my personal experience).

0
2

To run given (Universal) executable in x86_64 architecture, type in Terminal

arch -x86_64 path/to/executable

Note: when running an app, instead of /Applications/Firefox.app (it's a folder, can be opened in Finder with Show Package Contents) use path to executable like /Applications/Firefox.app/Contents/MacOS/firefox

Note: To check available archs of executable, type file myexec or lipo -archs myexec

Note: Mojave was the last version to support i386 arch

(c) @rsethc (comment), @TJ Luoma (comment), mmmmmm (comment)

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .