永远的节点/ usr / bin / env:节点:没有这样的文件或目录


108

我已经使用以下方法安装了nodejs:

apt-get install nodejs

然后我已经使用以下方法安装了npm:

apt-get install npm

然后我已经永久安装了:

npm install forever -g

现在我去我的项目 /var/www/myproject

并尝试运行 forever start server.js

然后我得到以下消息:

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

谁能告诉我怎么回事?



1
我收到此错误,并且正在使用节点版本管理器。
午宴椅'17

Answers:


270

编辑:自2018年12月起,这不再是正确的方法。请参阅其他两个答案。

您需要将nodejs可执行文件符号链接到node上sudo ln -s "$(which nodejs)" /usr/local/bin/node,原因是当您执行“ apt-get install node”时,它会安装一个不相关的软件包,因此他们必须选择其他名称,这样才不会发生冲突。


4
什么是$(哪个nodejs)”,是您粘贴一些我应该复制粘贴还是粘贴的代码?
Marc Rasmussen

11
“ $(哪个nodejs)”获取nodejs可执行文件的路径。当您在“ $()”中放入内容时,它会被执行,然后插入到包含的命令中
chedabob 2015年

2
@chedabob我遇到了同样的问题,但是当时我运行ln时,我还没有解决它:ln:无法创建符号链接'/ usr / bin / node':文件存在
DASADIYA CHAITANYA

@ dasadiya-chaitanya在这种情况下,请通过运行以下命令确保现有文件指向正确的可执行节点。ls -lart / usr / bin / node。如果符号链接未指向正确的二进制文件,则将其删除。并重新运行以下命令:sudo ln -s“ $(which nodejs)” / usr / bin / node
brownmamba

4
在Debian和Ubuntu上,有一个nodejs-legacy提供符号链接的软件包。您不应该手动执行此操作。apt-get install nodejs-legacy是解决问题的正确方法,请参阅下面的答案。
克莱门特兴农

45

尽管已接受的答案解决了问题,但至少使用Debian Jessie和forward和Ubuntu 14.4和forward 1的正确方法是安装nodejs-legacy

apt-get install nodejs-legacy

原因是Debian已经有一个提供/ usr / bin / node的软件包(节点),并且必须将nodejs 节点二进制文件安装到/ usr / bin / nodejs中。

所述的NodeJS遗留包提供从/ usr /斌/的NodeJS到/ usr /斌/节点(以及与冲突的符号链接节点包)。

来源:[CTTE#614907]节点/ nodejs冲突Debian Bug#614907的解决:节点:名称与node.js解释器冲突


这是在Debian / Ubuntu +1上的正确方法,对于那些不熟悉OS的人来说,这是一个很好的环境。
Ligemer '18

18

最好更新到最新的节点版本

  1. sudo npm缓存清理-f
  2. 须藤npm install -gn
  3. 苏顿稳定
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.