nvm安装节点无法在macOS Big Sur M1芯片上安装



我正在尝试使用nvm安装最新版本的节点。我刚刚得到了最新发布的带有M1芯片的SIlicon Macbook Pro(不确定这是否相关(。我已经在应用商店上安装了xcode,并在命令行上安装了xcode工具。我得到的主要错误是:

clang: error: no such file or directory: 'CXX=c++'

如果您使用homebrew安装了nvm,并试图使用命令nvm install <some_version>安装节点,则在低于15的版本的苹果硅机器(ARM(上,您将面临错误。早于15的节点版本不适用于苹果硅机器(ARM(,因为不支持ARM架构。对于v15下的任何东西,您都需要使用Rosetta 2安装节点。

  1. 如何在Rosetta2模式下打开终端:转到应用程序->右键单击终端应用程序->获取信息->选择";使用罗塞塔打开"->重新启动终端
  2. 在终端中,写入->arch -x86_64 zsh

现在您将能够安装任何版本的节点(甚至多个版本(

当我尝试安装节点12.X.X时,这不是一个问题,但在这之后,这是一个很大的痛苦,所以我遵循了以下步骤,它对我的有效

已卸载nvm(如果已使用Homebrew安装(。

brew uninstall nvm
brew cleanup

安装罗塞塔

softwareupdate --install-rosetta

使终端/iTerm2在罗塞塔模式中打开

转到应用程序(->实用程序(->右键单击终端应用程序->获取信息->选择";使用罗塞塔打开"->重新启动终端

在终端中运行命令

arch -x86_64 zsh 

如果不只是创建一个,请确保机器有.zshrc文件

cd ~
touch .zshrc

安装NVM

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

重新启动终端,运行检查nvm是否安装成功

nvm -v

然后像往常一样用nvm安装Node

nvm install 10

2023年,这很简单。以的正常方式安装nvm,而无需使用Rosetta

然后安装罗塞塔,您可以通过在macOS终端中运行安装:

softwareupdate --install-rosetta

安装后,运行

arch -x86_64 zsh

如果你想安装12

nvm install lts/dubnium

它会安装,然后你可以使用

nvm use 12

每当你想使用12时,你不必做任何特别的事情来从这里运行它,它在不使用arch -x86_64 zsh的情况下工作

希望能有所帮助!

最好的说明在nvm自己的Readme关于M1处理器Mac的常见问题解答中:

https://github.com/nvm-sh/nvm#macos-故障排除

如果您有M1/M2,并且您已经通过自制安装了nvm,请执行以下步骤

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

我做了以下操作:

运行软件更新:softwareupdate --install-rosetta --agree-to-license

罗塞塔更新程序出错,但您可以:grep RosettaUpdateAuto.pkg /var/log/install.log

并且:open /path/to/RosettaUpdateAuto.pkg

之后,右键单击dock中的终端图标>打开>选项>在Finder中显示。

然后,右键单击>获取信息。

然后,检查"使用罗塞塔打开">

在终端中,您可以检查您使用的是罗塞塔:arch

然后:nvm install v6.9.1#,例如

安装nvm版本>0.3.7和安装节点版本>=16.0

使用以下命令成功安装:

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

在执行上述命令之前,请确保在当前用户名文件夹(~/(的根目录中有.zshrc文件。

我在这里找到了一个真正有效的解决方案,我不打算写整个步骤,请按照这个链接〔罗塞塔终端〕

最新更新