41

I'm trying to install the latest version of node using nvm. I've just got the newly released SIlicon Macbook Pro with the M1 chip (not sure if that is related). I've installed xcode on the app store and the xcode tools on the command line. The main error i'm getting is:

clang: error: no such file or directory: 'CXX=c++'
adityaatri
  • 1,967
  • 2
  • 7
  • 10

9 Answers9

125

If you have installed nvm using homebrew and are trying to install the node using command nvm install <some_version>, you will face errors on apple silicon machines (ARM) for versions lower than 15. Node versions older than 15 do not work on apple silicon machines (ARM) because ARM architecture is not supported. For anything under v15, you will need to install node using Rosetta 2.

  1. How to open terminal in Rosetta2 mode: Go to Application -> Right click on terminal app -> Get Info -> Select "Open using Rosetta" -> Restart Terminal
  2. In Terminal, write -> arch -x86_64 zsh

Now you will able to install any version of node (even multiple versions)

Brian Thompson
  • 13,263
  • 4
  • 23
  • 43
adityaatri
  • 1,967
  • 2
  • 7
  • 10
  • 15
    (nvm maintainer here) note that nvm is *explicitly* not supported when installed via homebrew - the only correct way to install it is with the install script in nvm's readme. – LJHarb Jul 07 '21 at 23:33
  • 4
    I am getting ```arch: posix_spawnp: zsh: Bad CPU type in executable``` – Sahil Paudel Sep 23 '21 at 04:38
  • 1
    I installed via the `nvm` install script and ran into the same error -- and the steps by @adityaatri to run Terminal or iTerm2 in Rosetta mode also worked for me. – africola Sep 26 '21 at 03:40
  • if I understood correctly, you will neither do 1) OR 2), not together – superandrew Oct 07 '21 at 12:50
  • 9
    I first needed to install Rosetta. This was all I did, WITHOUT opening the terminal using right click etc. 1. install nvm via the script at the github repo (not homebrew) 2. `softwareupdate --install-rosetta` 3. `arch -x86_64 zsh` 4. `nvm install 14.8.0` – user1978019 Nov 20 '21 at 23:46
  • Thanx alot, it saved me alot of time. – raman Nov 22 '21 at 02:47
  • 1
    Step 1 was optional for me, Step 2 did the trick for me – Maitraiya Mali Mar 09 '22 at 06:05
  • can confirm this worked for me as well – Noah Ispas Jun 25 '22 at 08:06
  • Now my terminal line starts with `(base)` , how to exit this ? I tried with `arch -arm64 zsh`, no change. – Raymond Chenon Sep 01 '22 at 12:47
  • @LJHarb This issue persists with the curl install as well. – Jim May 07 '23 at 16:11
  • @Jim in that case, please file an issue on the repo and fill out the entire issue template, and i'll be happy to take a look! – LJHarb May 08 '23 at 17:37
25

it wasn't an issue while i was trying to install node 12.X.X but below that it was a big pain so i followed below steps and it worked for me

Uninstalled nvm if it’s already installed using Homebrew.

brew uninstall nvm
brew cleanup

Install Rosetta

softwareupdate --install-rosetta

Make terminal/iTerm2 to open in Rosetta mode

got to Application (-> utilities) -> right click on terminal app -> get Info -> Select "Open using Rosetta" -> Restart Terminal

In Terminal run a command

arch -x86_64 zsh 

Make sure machine has .zshrc file if not just create one

cd ~
touch .zshrc

Install NVM

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

Restart the terminal and check if nvm is installed successfully by running

nvm -v

Then install Node with nvm as usual

nvm install 10
aatif shaikh
  • 673
  • 10
  • 18
6

In 2023, this is quite simple. Install nvm in the normal way without using Rosetta.

Then install Rosetta which you can install by running in the macOS Terminal:

softwareupdate --install-rosetta

Once installed, run

arch -x86_64 zsh

then if you want to install say 12

nvm install lts/dubnium

It will install, you can then use

nvm use 12

whenever you want to use 12, you don't have to do anything special to run it from here, it works without using arch -x86_64 zsh

Hope that helps!

Gigabit
  • 167
  • 1
  • 2
  • 10
3

The best instructions are on nvm's own Readme's FAQ on Macs with M1 processors:

https://github.com/nvm-sh/nvm#macos-troubleshooting

dijonkitchen
  • 130
  • 3
  • 9
  • Thanks, this saved me. I used the steps above from @aatif-shaikh, lookd promising but it failed again. Then I tried "nvm install v12 --shared-zlib" and the shared-zlib flag fixed the error with clang compiler. – Yoshi Mar 08 '23 at 13:11
1

Follow these steps if you have M1/M2 and you have installed nvm via homebrew

rm -rf ~/.nvm
rm -rf ~/.npm
rm -rf ~/.bower

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
mks
  • 351
  • 1
  • 3
  • 16
0

I did the following:

Run software update: softwareupdate --install-rosetta --agree-to-license

Error in Rosetta Updater, but you can: grep RosettaUpdateAuto.pkg /var/log/install.log

and just: open /path/to/RosettaUpdateAuto.pkg

After that, right-click your terminal icon in dock > Open > Options > Show in Finder.

Then, right-click > Get Info.

Then, check 'Open using Rosetta'

In the terminal you can check you are using rosetta with: arch

Then just: nvm install v6.9.1 # for example

Fred Guth
  • 1,537
  • 1
  • 15
  • 27
-1

Install nvm version > 0.3.7 and install node version >= 16.0

Kevin Mendez
  • 651
  • 5
  • 10
-1

Use the following command for successful install:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

before the above command, please be sure to have .zshrc file in the root of your current username folder (~/).

AmerllicA
  • 29,059
  • 15
  • 130
  • 154
-1

I found a solution that really worked well here, am not going to write the entire steps please follow this link [Rosetta Terminal]

  • While this link may answer the question, it is better to include the essential parts of the answer here and provide the link for reference. Link-only answers can become invalid if the linked page changes. - [From Review](/review/late-answers/30647772) – Tyler2P Dec 23 '21 at 16:17