永远的节点 /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 上的正确方法,对于不熟悉操作系统的人来说是很好的上下文。 这完全破坏了 npmSyntaxError: 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