我正在尝试将nodeJs安装到我的Ubuntu 14.04中,以便使用GruntJs。

我读过关于Ubuntu不同的安装方法(问题?),所以我是这样安装它的:

sudo apt-get install npm

sudo npm install -g grunt-cli

输入grunt之后,我得到了错误:

/usr/bin/env: node: No such file or directory

所以,我试过:

curl -sL https://deb.nodesource.com/setup | sudo bash -

sudo apt-get install -y nodejs

sudo apt-get update

再次尝试,仍然得到错误,我尝试了:

sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/

sudo apt-get install -y nodejs

我得到了这个信息:

nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.

以防万一,我试着清理了一下:

sudo apt-get autoremove

但是,错误仍然存在:当我输入grunt时,我仍然得到/usr/bin/env: node: No这样的文件或目录

我该怎么办?


当前回答

ln -s显然是最简单的修正,下面解释一下:

由于与另一个包冲突,来自的可执行文件 Ubuntu存储库被称为nodejs而不是node。把这个放进去 在运行软件时要注意。

当安装sudo apt-get install nodejs时,会出现这个建议。

其他一些已知的工具(我不知道它是做什么的。虽然ubuntu存储库知道它,但在16.04中默认没有安装)占用该名称空间。

如果Ubuntu能提供一个如何“干净地”解决这个问题的建议,如果不是手工解决这个包的话,那就太好了。(碰撞仍然是碰撞……如果+何时发生)

其他回答

sudo PATH="$PATH:/usr/local/bin" npm install -g <package-name>

ln -s显然是最简单的修正,下面解释一下:

由于与另一个包冲突,来自的可执行文件 Ubuntu存储库被称为nodejs而不是node。把这个放进去 在运行软件时要注意。

当安装sudo apt-get install nodejs时,会出现这个建议。

其他一些已知的工具(我不知道它是做什么的。虽然ubuntu存储库知道它,但在16.04中默认没有安装)占用该名称空间。

如果Ubuntu能提供一个如何“干净地”解决这个问题的建议,如果不是手工解决这个包的话,那就太好了。(碰撞仍然是碰撞……如果+何时发生)

如果你已经安装了nodejs(检查哪个nodejs),并且不想安装另一个包,你可以,作为root:

update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99

我发现这通常是一个命名错误,如果你从包管理器安装,你的bin可能被称为nodejs,所以你只需要像这样符号链接它

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

如果你正在使用NVM节点版本管理器,使用这个命令创建一个符号链接:

sudo ln -s "$(which node)" /usr/bin/node
sudo ln -s "$(which npm)" /usr/bin/npm

第一个命令为节点创建符号链接 第二个命令为npm创建一个符号链接