node.js冲突:/ sbin / node vs / usr / bin / node

我有两台Ubuntu 12.10机器:机器A是VMWare VM,机器B是旧Acer笔记本电脑。 在两台机器上,我使用apt-get安装了节点。 但是,机器A将主二进制文件安装为/usr/bin/node ,将机器B安装为/usr/bin/nodejs 。 以下是我观察到的一些行为:

  1. 两台机器都返回/usr/bin/node以响应which node命令。 但是,机器B上没有这样的文件。
  2. 发出命令node适用于机器A,而不是B.在B上,我必须使用nodejs
  3. 在B上,有一个名为/ sbin / node的二进制文件,A没有它。

在两台机器上开发时,这些行为会导致不一致问题。 现在,我通过在B上重命名二进制文件来解决这个问题:

 sudo mv /sbin/node /sbin/node-sbin sudo ln -s /usr/bin/nodejs /usr/bin/node 

有没有办法真正解决这个问题,那么该节点将安装为/usr/bin/node而不是/usr/bin/nodejs

在Ubuntu 13.10上面的所有答案对我都不起作用。 当我安装nodejs-legacy时,它终于奏效了

 sudo apt-get install nodejs-legacy 

这为我正确提供了/usr/bin/node ,因此可以使用例如nodemon

更新:下面修改的说明使用nodejs-legacy包。( 有关node-legacy的更多信息 )

尝试完全删除冲突的节点包:

 sudo apt-get --purge remove node sudo apt-get --purge remove nodejs-legacy sudo apt-get --purge remove nodejs sudo apt-get install nodejs-legacy # Confirm it worked node --version # v0.10.13 ls -la `which node` # ... /usr/bin/node -> /etc/alternatives/node 

当我无意中安装了非node.js node包时发生了这种情况。 虽然我在安装正确的nodejs包之前做了apt-get remove node ,但我想--purge参数是必需的。

背景资料 :

与节点包(业余分组无线电节点程序)存在命名冲突,并且nodejs二进制文件已从节点重命名为nodejs。 您需要将/ usr / bin / node符号链接到/ usr / bin / nodejs,或者您可以卸载业余数据包无线电节点程序以避免这种冲突。

不幸的是,创建一个符号链接不起作用。 为我工作的是创建一个别名。 在~/.bashrc~/.bash_aliases (如果~/.bashrc加载此文件),只需添加以下行:

 alias node="nodejs" 

通过在控制台中键入bash重新启动bash会话,您的别名现在可以正常工作。

我觉得这就是:

 sudo update-alternatives --install / usr / bin / node node / usr / bin / nodejs 10

使用Debian替代品。

迟到的答案,但对于最新的信息……

如果使用来自节点github安装自述文件的recommended方法安装node.js,它建议遵循nodesource博客文章中的说明 ,而不是从过时的apt-get repo安装,node.js应该使用node命令运行,以及nodejs命令,无需创建新的符号链接。

这篇文章的方法是:

 # Note the new setup script name for Node.js v0.12 curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash - # Then install with: sudo apt-get install -y nodejs 

请注意,这适用于v0.12,在不久的将来可能会过时。

此外,如果您在公司代理(例如我)后面,您将需要在sudo命令中添加-E选项,以保留代理所需的env变量:

 curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash - 

ubuntu 14.04上,我遇到了相同的节点问题。 我没有工作“节点”,并工作“nodejs”。 我已经做了

 sudo apt-get remove node 

在那之后,节点正在运行,并且nodejs也正在运行:)我是linux的新手,这对我来说是一个谜。 然而鲍尔正在运行!

 sudo getconf LONG_BIT sudo uname -p 
  • 确认您的CPU架构
  • 在https://nodejs.org/dist/的目录树中找到您的node.js发行版(注意:各种CPU架构的各种node.js发行版的各种版本)

我的桌面目前是Ubuntu 15.10 AMD64,所以我将在我的安装示例中使用以下URL(再次,distrib的变化):

 sudo wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.gz 

然后将目录更改为下载目录:

 sudo cd /home/name/Downloads 

从下载目录中,执行以下命令:

 sudo tar -C /usr/local --strip-components 1 -xzf node-v5.0.0-linux-x64.tar.gz 

使用以下命令确认node.js安装:

 sudo ls -l /usr/local/bin/node sudo ls -l /usr/local/bin/npm 

REF。 http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/