Apple Silicon

Available since magento-scripts 1.5.0

System preparation

To prepare your system you will need to be running CMA under Rosetta 2.

Install Rosetta 2 first:

softwareupdate --install-rosetta

After installing rosetta, we also need to configure the terminal to run CMA under emulation.

  1. Locate the Terminal application within the Utilities folder (Finder > Go menu > Utilities)

  2. Select Terminal.app and right-click on it, then choose “Duplicate”

  3. Rename the duplicated Terminal app something obvious and distinct, like ‘Rosetta Terminal’

  4. Now select the freshly renamed ‘Rosetta Terminal’ app and right-click and choose “Get Info” (or hit Command+i)

  5. Check the box for “Open using Rosetta”, then close the Get Info window

  6. Run the “Rosetta Terminal” as usual.

Now, we need to install 2 versions of Brew package manager: intel x86 version and arm version. To do that, open both native and rosetta terminals and run the usual install command in both of them:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Now we have 2 Brew installed, but to actually use the correct brew depending on our terminal translation enabled we need to put the following script inside your $HOME/.zshrc file.

if [ "$(sysctl -n sysctl.proc_translated)" = "1" ]; then
    local brew_path="/usr/local/homebrew/bin"
else
    local brew_path="/opt/homebrew/bin"
fi
export PATH="${brew_path}:${PATH}"

And after this, proceed with the usual MacOS installation using the Rosetta terminal.

Changes with setup and expected issues

  • MySQL container image doesn't have an arm64 version, so we are using MariaDB instead. MariaDB is a fork of MySQL so almost all of the features should work as expected.

  • Sometimes containers might have a problem with connecting to the host network, so after you run the start command and open the browser, it might say that this site can't be reached. If you have this problem, try running the start command again, maybe with option -s to speed up the startup process.

Last updated