node和nodejs具有不同的版本


15

我通过使用那些命令成功地更新/安装了最新版本的node js(官方curl方式对我不起作用):

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node

但是,我的node和nodejs的版本变得不同:

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

看来新节点已安装在中/usr/local/bin/node,所以我尝试了:

sudo ln -s /usr/bin/nodejs /usr/local/bin/node

但它返回:

ln: failed to create symbolic link ‘/usr/local/bin/node’: File exists

我也使用此链接:

$ sudo ln -s /usr/bin/nodejs /usr/bin/node
ln: failed to create symbolic link ‘/usr/bin/node’: File exists

我将使用一些依赖的框架node,例如Ionic。它将使用哪个节点版本?

我应该怎么做才能解决这个问题?

非常感谢你的帮助


imo的真正问题是,我如何告诉n覆盖任何现有的节点版本,并将两者nodejs以及node与n安装的二进制文件进行符号链接。如果n无法这样做,那么最新的方法是什么?在工作环境中,如果nodejs和node寻址不同的nodejs版本,则很容易出错。
atripes

Answers:


13

为我解决了相同问题的步骤:

sudo apt-get remove nodejs
sudo ln -s /usr/bin/node /usr/bin/nodejs

说明

您已经在计算机上安装了两个版本的nodejs,因此您需要删除其中一个。您的情况:

node v5.0.0 - you will keep this one
nodejs v0.10.25 - this you can remove

您可以nodejs通过apt-get remove命令删除软件包。这也将删除文件,/usr/bin/nodejs并且您不会再收到错误消息。

现在,您可以创建一个名为“ / usr / bin / nodejs”的符号链接,该链接指向源“ / usr / local / bin / node”。在您的示例中,路径“从”到“到”的顺序错误

sudo ln -s source_file myfile

有关链接创建的更多信息:符号链接如何工作


5

错误:

ln: failed to create symbolic link ‘/usr/bin/node’: File exists

通常是在您确实有两个版本的Nodejs时引起的,一个版本的别名为the node,另一个版本的nodejs别名为,我们可以在命令node --version和结果中看到nodejs --version

$ node --version
v5.0.0
$ nodejs --version
v0.10.25

因此您无法为已存在的文件创建符号链接。

要解决此问题,您需要使用以下方法完全删除两个软件包:

sudo apt-get purge node
sudo apt-get purge nodejs
sudo rm -rf bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node

nodejs使用以下命令仅重新安装软件包:

sudo apt-get install nodejs

并使用以下命令创建符号链接:

ln -s /usr/bin/nodejs /usr/bin/node

或安装nodejs-legacy将使用以下命令解决此问题的:

sudo apt-get install nodejs-legacy 

非常感谢,您添加了信息,我已经自己解决了这个问题。我投票了。
areim

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.