问题描述
我正在尝试将nodeJs安装到我的Ubuntu 14.04中以便使用GruntJs。
我已经阅读了Ubuntu different way这样做(issues?),所以这就是我为安装它所做的:
sudo apt-get install npm
sudo npm install -g grunt-cli
在那之后打字咕噜我有错误:
/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
但不,错误仍然存在:当我输入咕噜声时,我仍然得到/usr/bin/env: node: No such file or directory
我该怎么办?
最佳解决办法
找到了答案。为了防止有人,我会在这里发布:
做一个符号链接解决了这个问题:ln -s /usr/bin/nodejs /usr/bin/node
(谢谢你和+1投票给bodokaiser)。
注意:我认为这篇文章并不完全重复,因为该帖子有点像浏览器问题。
次佳解决办法
问题不在于节点版本。相反,它是默认情况下在Ubuntu中安装NodeJS的方式。在Ubuntu中运行Node应用程序时,您必须运行nodejs somethign.js
而不是node something.js
因此终端中调用的应用程序名称是nodejs
而不是node
。这就是为什么需要一个符号链接来简单地将收到的所有命令作为node
转发到nodejs
的原因。
ln -s /usr/bin/nodejs /usr/bin/node
第三种解决办法
我认为你应该升级最新的节点版本
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
第四种办法
如果你能够使用nodejs命令访问ubuntu终端上的节点,那么可以使用-creating nodejs和node的符号链接来简单地解决这个问题
ln -s /usr/bin/nodejs /usr/bin/node
这可以解决问题
第五种办法
就我而言,installing nodejs-legacy解决了这个问题。
sudo apt-get install nodejs-legacy
第六种办法
做就是了
$ sudo apt-get install nodejs-legacy
它将开始工作。
第七种办法
我发现这通常是一个错误的错误,如果你从一个包管理器安装你bin可能被称为nodejs所以你只需要像这样符号链接它
ln -s /usr/bin/nodejs /usr/bin/node
第八种办法
如果您已经安装了nodejs(请与which nodejs
一起检查)并且不想安装另一个软件包,您可以以root用户身份:
update-alternatives --install /usr/bin/node node /usr/bin/nodejs 99
第九种办法
当我使用gulp时,我遇到了这个错误。
~$ gulp
/usr /bin /env:’node’:没有这样的文件或目录
通过执行以下命令删除了这一点,您必须记住/usr /bin目录具有所有权限。
~$ ln -s /usr/bin/nodejs /usr/bin/node
这对我有用..
第十种办法
虽然ln -s
是一个明显最简单的解决方案,但有一点解释:
Because of a conflict with another package, the executable from the Ubuntu repositories is called nodejs instead of node. Keep this in mind as you are running software.
安装sudo apt-get install nodejs
时会出现此建议。
所以其他一些已知的工具(我不知道它的作用。虽然ubuntu存储库已知,但默认情况下在16.04中没有安装)占用该命名空间。
本来不错的,如果Ubuntu已经提供了如何修复这个’cleanly’的建议,如果不是通过手工做什么,否则包将做。 (碰撞仍然是碰撞……如果发生碰撞时会发生碰撞)