解决 Mac(M1/M2)芯片,使用node 14版本

前言

nvm 在安装 Node.js v14.21.3 时,报错:

复制代码
nvm install 14
Downloading and installing node v14.21.3...
Downloading https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz...
curl: (56) The requested URL returned error: 404

Binary download from https://nodejs.org/dist/v14.21.3/node-v14.21.3-darwin-arm64.tar.xz failed, trying source.
grep: /Users/niuben/.nvm/.cache/bin/node-v14.21.3-darwin-arm64/node-v14.21.3-darwin-arm64.tar.xz: No such file or directory
Provided file to checksum does not exist.
Binary download failed, trying source.
Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!
Local cache found: ${NVM_DIR}/.cache/src/node-v14.21.3/node-v14.21.3.tar.xz
Checksums match! Using existing downloaded archive ${NVM_DIR}/.cache/src/node-v14.21.3/node-v14.21.3.tar.xz
$>./configure --prefix=/Users/niuben/.nvm/versions/node/v14.21.3 <
Node.js configure: Found Python 3.12.6...
Please use python3.10 or python3.9 or python3.8 or python3.7 or python3.6 or python3.5 or python2.7.
nvm: install v14.21.3 failed!

这是因为 Node.js 官方并没有为 darwin-arm64 提供预编译二进制文件。

对于 M1/M2 芯片的 Mac,nvm 会尝试下载 darwin-arm64 版本,但由于文件不存在,它会自动回退到从源码编译的方式。

通过 Rosetta 2 安装并运行 x64 架构的 Node.js 14

通过 Rosetta 2 安装并运行 x64 架构的 Node.js 14

打开 Finder,找到你的终端应用(例如:Terminal 或 iTerm2), 右键点击终端应用,选择 "显示简介" ,勾选 "通过 Rosetta 打开",重启后,这样终端会以 x64 模式运行。

会发现 arch 结果是 i386架构

这时候,再执行 nvm install 14,就能顺利安装了

复制代码
nvm install 14

从源码编译 Node.js 14 的 ARM 架构版本

如果你希望运行原生的 ARM 架构版本(而不是通过 Rosetta),可以从源码编译 Node.js 14。

安装依赖

复制代码
brew install python@3.9
brew install gcc

# 如果系统默认 python 不符合要求,可以通过 python3.9 指定路径:
export PYTHON=$(brew --prefix python@3.9)/bin/python3.9

使用 nvm 编译并安装

执行以下命令,强制从源码编译 Node.js:

复制代码
nvm install 14 --build-from-source

这会使用源码编译 Node.js 14 版本,并安装。

相关推荐
whyutianict_vv1 小时前
云计算 HCIE 认证体系解析:HCIA/HCIP/HCIE 三级科目与知识边界
linux·运维·云计算
小天源3 小时前
智叟云集系统:便携部署、MAC 授权与交付排障
macos
0+1118 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋8 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
Joy T9 小时前
voice-dump-to-todo:把混乱的语音整理成可执行待办,一个实用的 Agent Skill
ide·macos·语音识别·xcode·任务管理·自研skill
2601_9498477512 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_6399069412 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
水饺编程13 小时前
第2章:Linux 基础,exit 命令
linux·c语言·汇编
木子欢儿14 小时前
Debian 13 + vsftpd 搭建FTP服务
linux·服务器·前端·网络·debian
GeW15 小时前
新质生产力落地实践:企业级Linux迁移与数据库国产化
linux