node 5.5.0 已经安装但是 node -v 在 OS X & homebrew 上使用 "v4.2.1" 获取?

node 5.5.0 already installed but node -v fetches with "v4.2.1" on OS X & homebrew?

我正在尝试将我的 nodejs v4.2.1 更新到最新版本并成功安装。但是 node -v 仍然给我 '-v4.2.1'。

可能较旧的节点在您的 PATH 中位于较新的节点之前。 您可以 运行 在您的 shell:

which node

查看默认情况下 运行 的 Node 二进制文件在哪里(在您的情况下为 v4.2.1)。您可以通过 运行ning:

查看您的 PATH 是什么
echo $PATH

它将显示如下内容:

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

这些是在您键入 "node" 或任何其他命令时按顺序搜索的目录。如果您的 PATH 没有您安装新节点的目录,或者如果它在您安装旧节点的目录之后,那么新节点将不会是 运行。解决问题可能很简单 运行ning:

PATH="/usr/local/bin:$PATH"

如果您的新节点安装在 /usr/local/bin 中(如果安装在其他地方,则使用其他路径)。您需要在 HOME 的 .profile.bashrc 中添加此行,以便在每次登录时正确设置 PATH 并开始新的 shell.

查看 /usr/local/bin 中的 Node 版本是否正确 运行:

/usr/local/bin/node -v

更新

查看您的评论和更新的答案,我敢打赌您已经手动安装了 Node 4.2.1(不是使用 brew),现在 brew 不会更新 /usr/local/bin.[=28= 中的二进制文件]

我建议手动安装并控制版本。我将向您展示下载源代码、配置、构建和安装版本化目录以及更新 PATH 的命令。

根据Node download page the current version is v6.1.0 but if you want specifically 5.5.0 or any other version (the latest 5.x is v5.9.1) then just change the commands below to the verson that you want. (All versions are listed here.)

# change dir to your home:
cd ~
# download the source:
curl -O https://nodejs.org/dist/v6.1.0/node-v6.1.0.tar.gz
# extract the archive:
tar xzvf node-v6.1.0.tar.gz
# go into the extracted dir:
cd node-v6.1.0
# configure for installation:
./configure --prefix=/opt/node-v6.1.0
# build and test:
make && make test
# install:
sudo make install
# make a symlink to that version:
sudo ln -svf /opt/node-v6.1.0 /opt/node

最后将 PATH="/opt/node/bin:$PATH" 添加到您的 .profile.bashrc (HOME 中的 node-v6.1.0 目录和 .tar.gz 可以删除或保留以后用)。

此时 which node 应该 return /opt/node/bin/node 并且版本是您想要的版本(本例中为 6.1.0)。如果您想测试另一个版本,请将其安装在 /opt/node-vXXX 下的另一个目录中并更新符号链接。您不必更新 PATH,只需更新符号链接。

这比使用 brew 需要更多工作,但您可以完全控制安装的内容和位置。我喜欢这个解决方案的一点是,您的版本永远不会混合或混淆,您可以随时 install/remove 版本并快速将任何版本设置为默认版本。

您的路径在 /usr/local/Cellar 之前包含 /usr/local/bin。由于您使用的 node 版本是 homebrew 版本,因此修复它:

PATH="/usr/local/Cellar:$PATH"

下次你用 brew 遇到问题时,运行 brew doctor,它会告诉你该怎么做