已经安装了节点5.5.0但是节点-v在OS X&amp ;;上提取了“v4.2.1”自制?

时间:2016-05-12 07:48:33

标签: node.js npm homebrew

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

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:0)

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

which node

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

echo $PATH

它将显示如下内容:

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

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

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

如果您的新节点安装在/usr/local/bin中(如果安装在其他位置,则安装在其他路径上)。您需要在HOME中的.profile.bashrc中添加此行,以便每次登录时都能正确设置PATH以启动新shell。

要查看/usr/local/bin运行中是否有正确的节点版本:

/usr/local/bin/node -v

更新

查看您的评论和更新的答案我的赌注是您手动安装了Node 4.2.1(而不是brew),现在brew不会更新/usr/local/bin中的二进制文件。

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

根据Node download page,当前版本是v6.1.0但是如果你想要特别是5.5.0或任何其他版本(最新的5.x是v5.9.1),那么只需将下面的命令更改为verson你要的那个。 (列出所有版本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(您家中的node-v6.1.0目录中,.tar.gz可以删除或保留供以后使用)。

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

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

答案 1 :(得分:0)

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

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

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