macOS 12 安装卸载升级 Node.js
安装 Node.js
使用 Homebrew 安装
搜索 Homebrew 支持的 Node.js 软件包方案:
brew search node
libbitcoin-node node node@14 node@20 ✔ nodeenv
linode-cli node-build node@16 node_exporter nodenv
llnode node-sass node@18 ✔ nodebrew ode
推荐安装最新的 LTS 版本,即 node@20
:
brew install node@20
安装 openssl@3 失败
在旧版的 Intel 芯片 macOS 系统上面安装 openssl@3
失败:
错误信息显示在执行 test
时失败,可以手动安装对应版本的 openssl@3
(这里是 3.5.0)不执行 test
命令,之后再重新使用 Homebrew 安装 node@20
。
使用 Homebrew 查看 openssl@3
的依赖项:
brew deps --tree openssl@3
openssl@3
└── ca-certificates
使用 Homebrew 安装 openssl@3
的依赖:
brew install --only-dependencies openssl@3
下载对应版本的 openssl@3
安装包:
curl -O -L https://www.openssl.org/source/openssl-3.5.0.tar.gz
解压下载好的软件包:
tar xzfv openssl-3.5.0.tar.gz
进入到解压后的目录:
cd openssl-3.5.0
编译配置:
perl ./configure \
--prefix=/usr/local/Cellar/openssl@3/3.5.0 \
--openssldir=/usr/local/etc/openssl@3 \
--libdir=lib \
no-ssl3 \
no-ssl3-method \
no-zlib \
darwin64-x86_64-cc \
enable-ec_nistp_64_gcc_128
启动最大核心编译:
make -j$(sysctl -n hw.ncpu)
安装:
make install MANDIR=/usr/local/Cellar/openssl@3/3.5.0/share/man MANSUFFIX=ssl
防止 Homebrew 在更新 openssl@3
时删除 certs
和 private
目录:
mkdir -p /usr/local/etc/openssl@3/certs
mkdir -p /usr/local/etc/openssl@3/private
touch /usr/local/etc/openssl@3/certs/.keepme
touch /usr/local/etc/openssl@3/private/.keepme
将 ca-certificates
中提供的 CA 证书连接到 openssl@3
:
rm -rf /usr/local/etc/openssl@3/cert.pem
ln -sf /usr/local/etc/ca-certificates/cert.pem /usr/local/etc/openssl@3/cert.pem
删除安装包和安装目录:
cd ../
rm -rf openssl-3.5.0.tar.gz
rm -rf openssl-3.5.0
查看 macOS 内置的 openssl
命令路径:
which -a openssl
/usr/bin/openssl
查看 macOS 内置的 openssl
版本:
openssl version
LibreSSL 2.8.3
用 Homebrew 建立 openssl@3
的符号链接:
brew link openssl@3
再次查看 openssl
的命令路径:
which -a openssl
/usr/local/bin/openssl
/usr/bin/openssl
可见多了一个刚刚建立的命令路径 /usr/local/bin/openssl
并且在 macOS 内置的 openssl
之前。
重启 Terminal 或者打开新的 tab 确认新安装的版本:
openssl version
OpenSSL 3.5.0 8 Apr 2025 (Library: OpenSSL 3.5.0 8 Apr 2025)
配置环境变量
添加 Node.js 相关环境变量到 Zsh 配置文件 ~/.zshrc
中,并重新执行配置文件:
echo 'export PATH="/usr/local/opt/node@20/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
echo 'export LDFLAGS="-L/usr/local/opt/node@20/lib"' >> ~/.zshrc
source ~/.zshrc
echo 'export CPPFLAGS="-I/usr/local/opt/node@20/include"' >> ~/.zshrc
source ~/.zshrc
查看安装的 Node.js 版本号:
node -v
v20.19.0
卸载 Node.js
卸载软件包
使用 Homebrew 卸载 Node.js:
brew uninstall node@20
默认不会卸载依赖,需要手动卸载:
# 查看孤立依赖
brew autoremove --dry-run
# 卸载孤立依赖
brew autoremove
删除环境变量
进入 Zsh 配置文件:
vim ~/.zshrc
找到并删除以下环境变量配置:
export PATH="/usr/local/opt/node@20/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/node@20/lib"
export CPPFLAGS="-I/usr/local/opt/node@20/include"
升级 Node.js
兼容升级
查看当前已安装的所有软件包方案:
brew ls
icu4c node@10
可见当前安装的 Node.js 软件包方案为 node@10
。
兼容升级(第二、三位版本号):
brew upgrade node@10
不兼容升级
先卸载已安装的 Node.js 软件包方案,再安装新的方案。