永远的节点 /usr/bin/env: node: No such file or directory

Posted

技术标签:

【中文标题】永远的节点 /usr/bin/env: node: No such file or directory【英文标题】:Node forever /usr/bin/env: node: No such file or directory 【发布时间】:2015-07-28 15:36:39 【问题描述】:

我已经安装了 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

谁能告诉我这是怎么回事?

【问题讨论】:

Cannot install NodeJs: /usr/bin/env: node: No such file or directory的可能重复 我得到了这个错误,我正在使用节点版本管理器。 【参考方案1】:

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

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

【讨论】:

什么是 $(which nodejs)" 是你粘贴的代码我应该复制粘贴还是? "$(which nodejs)" 获取 nodejs 可执行文件的路径。当你在 "$()" 里面放一些东西时,它会被执行,然后插入到包含的命令中 @chedabob 我也遇到了同样的问题,但是当我运行你的命令时我还没有解决它当时我得到了 ln: failed to create symbolic link '/usr/bin/node' : 文件存在 @dasadiya-chaitanya 在这种情况下,通过运行以下命令确保现有文件指向正确的节点可执行文件。 ls -lart /usr/bin/node.如果符号链接未指向正确的二进制文件,则在这种情况下将其删除。并重新运行以下命令: sudo ln -s "$(which nodejs)" /usr/bin/node 在 Debian 和 Ubuntu 上,有一个包 nodejs-legacy 提供符号链接。您不应该手动执行此操作。 apt-get install nodejs-legacy 是解决问题的正确方法,请看下面我的回答。【参考方案2】:

虽然接受的答案解决了问题,但正确的方法是安装 nodejs-legacy

apt-get install nodejs-legacy

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

nodejs-legacy 包提供了从 /usr/bin/nodejs 到 /usr/bin/node 的符号链接(并且与 node 包冲突)。

来源:[CTTE #614907] Resolution of node/nodejs conflict 和 Debian bug #614907: node: name conflicts with node.js interpreter

【讨论】:

这是 Debian/Ubuntu +1 上的正确方法,对于不熟悉操作系统的人来说是很好的上下文。 这完全破坏了 npm SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode,即使卸载旧版并重新安装 npm 也会引发相同的错误。 继续我的最后一条评论,this answer 修复了当前答案的问题,我能够继续使用@Shantanu 提供的答案 请不要这样做,它会破坏你的 npm 安装【参考方案3】:

最好更新到最新的node版本

    sudo npm cache clean -f sudo npm install -g n sudo n 稳定

【讨论】:

以上是关于永远的节点 /usr/bin/env: node: No such file or directory的主要内容,如果未能解决你的问题,请参考以下文章

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

php脚本#!/usr/bin/env php 写法

php脚本#!/usr/bin/env php写法的好处

#!/usr/bin/env python与#!/usr/bin/python的区别

关于#!/usr/bin/env python 的用法

#!/usr/bin/env python与#!/usr/bin/python的区别