mac M1 nvm 安装问题

478 阅读2分钟

在通过nvm 安装不同版本的node 时,出现了问题。

问题一:先说一下 nvm的安装问题,这个跟m1的兼容性无关。

我在通过命令行安装nvm成功之后(curl -o- raw.githubusercontent.com/nvm-sh/nvm/… | bash),终端输入nvm,提示 command not found: nvm,因为还没执行下面红框中的脚本。

image.png

把下面的脚本复制到终端,回车之后执行nvm命令,发现可以正常使用了。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

但是,我这边还有一个问题就是,每次关掉终端,再重新打开的时候执行nvm又会提示 command not find。执行上面的脚本之后又可正常使用,如此反复。

这个时候需要新建一个.zshrc文件(touch .zshrc),然后将上面的脚本复制进去,保存。如下图:

image.png

如果上面没有解决问题,打开你的 .bash_profile 文件,并在最上方添加以下代码: source ~/.bashrc

问题二: 通过nvm安装最新的node版本 v15.8.0,没有什么问题,可以正常安装,这是因为最新版本的nvm和node,已经对M1做了兼容处理。

但是当通过nvm安装v15.x.x一下版本node 时,就会出现如下报错:

image.png

头疼,看来ARM架构还是需要一段过度历程要走的。

后来终于在nvm github官方库中找到了对应的issue(地址:github.com/nvm-sh/nvm/… ),node issue(地址:github.com/nodejs/node… )。

image.png

需要在Rosetta 2的模式下 执行对应的 terminal命令。

这里就有个问题了,什么是Rosetta 2 ?

这里有个简单的介绍文章(www.macdaxue.com/rosetta-2/ )。简单来说,其实就是M1芯片在过渡期间苹果给出的对应 X86芯片的兼容性方案。

在终端输入 arch -x86_64 zsh,然后回车,终端进入Rosetta 2模式。重新安装nvm(curl -o- raw.githubusercontent.com/nvm-sh/nvm/… | bash),然后nvm install 8,nvm install 6。

image.png

bingo~ 安装成功。