我正在尝试将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
我该怎么办?
15 回答
我认为你应该升级最新的节点版本
对于我的案例链接 did NOT work 如下
但是您可以以root身份打开/ usr / local / bin / lessc,并将第一行从节点更改为nodejs .
做就是了
它将开始工作 .
如果您已经安装了nodejs(请使用
which nodejs
检查)并且不想安装另一个软件包,您可以以root用户身份:只需通过此命令重命名命令或文件名
ln -s /usr/bin/nodejs /usr/bin/node
根据您安装节点的方式,大部分时间它可能不在/ usr / bin /中,在我自己的情况下,我使用nvm进行安装,因此我的节点位于./nvm/versions中 .
使用此命令
which node
我找到了路径,但为了使工作更轻松,您可以运行此命令 .上面的命令将获取节点的位置并为您创建链接 .
当我使用gulp时,我得到了这个错误 .
/ usr / bin / env:'node':没有这样的文件或目录
通过执行以下命令删除了这一点,您必须记住/ usr / bin目录具有所有权限 .
这对我有用..
虽然
ln -s
是一个明显最容易解决的问题,但有一个解释:安装
sudo apt-get install nodejs
时会出现此建议 .所以其他一些已知的工具(我不知道它的作用 . 虽然ubuntu存储库已知,但默认情况下不会在16.04中安装)占用该命名空间 .
本来不错的,如果Ubuntu提供了如何解决这个“干净利落”的建议,如果不是通过手工做什么,否则包装会做 . (碰撞仍然是碰撞......如果发生碰撞)
有两种解决方案:
a)设置PATH变量以包含“/ usr / local / bin”
export PATH="$PATH:/usr/local/bin"
b)创建一个已经在PATH中的“/ usr / bin”的符号链接
ln -s /usr/bin/nodejs /usr/bin/node
我希望它有所帮助 .
就我而言,installing nodejs-legacy解决了这个问题 .
如果你能够使用nodejs命令访问ubuntu终端上的节点,那么可以使用-creating nodejs和node的符号链接来简单地解决这个问题
ln -s /usr/bin/nodejs /usr/bin/node
这可以解决问题
找到了答案 . 为了防止有人,我会在这里发布:
做一个符号链接解决了这个问题:
ln -s /usr/bin/nodejs /usr/bin/node
(谢谢,1票对bodokaiser) .注意:我认为这篇文章并不完全相同,因为该帖子在某种程度上是一个浏览器问题 .
我发现这通常是一个错误的错误,如果你从一个包管理器安装你的bin可能被称为nodejs所以你只需要符号链接就像这样
问题不在于节点版本 . 相反,它是默认情况下在Ubuntu中安装NodeJS的方式 . 在Ubuntu中运行Node应用程序时,您必须运行
nodejs somethign.js
而不是node something.js
因此,在终端中调用的应用程序名称是
nodejs
而不是node
. 这就是为什么需要一个符号链接来简单地将收到的所有命令转发为node
到nodejs
.