使用 npm 时出现“没有此文件或目录”错误

使用 npm 时出现“没有此文件或目录”错误

我按照提供的说明安装了 node 和 npm这里

我能够成功使用节点。但是,当我尝试安装“Formidable”节点模块时,我收到以下错误:

$npm install formidable
bash: /usr/local/bin/npm: /usr/local/bin/node: bad interpreter: No such file or directory

当我执行时,which npm我得到以下输出:

$which npm
/usr/local/bin/npm

我不知道这里的 npm 出了什么问题——有什么想法可以解决这个问题吗?

答案1

根据@gertvdijk 的提示,我使用以下脚本卸载了 NPM:

rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/npm*

(可找到这里

即使执行上述操作后,我仍然收到另一个错误:

$ npm install formidable  
bash: /usr/local/bin/npm: No such file or directory

于是我跑了hash -r在终端中运行(按照下面的说明升级后 NPM 无法运行),瞧 - 成功了。NPM 现在可以工作了!

答案2

Ubuntu 和一些 Linux 发行版将节点的解释器安装为/usr/bin/nodejs,而不是/usr/local/bin/node

您可以通过安装创建从到 的nodejs-legacy符号链接的包来解决此问题。/usr/bin/nodejs/usr/bin/node

解决方案:

sudo apt-get install nodejs-legacy

参考: nodejs-legacy 包

答案3

步骤 1:运行npm -v o/p:错误:bash:/usr/local/bin/npm:没有此文件或目录

步骤 2:运行which npm o/p:/usr/bin/npm

步骤 3:运行hash -r然后运行npm -v ​​o/p:3.5.2

答案4

看来您之前曾从源代码安装了另一个 Node 版本。从/usr/local/bin现在显示的安装路径可以看出这一点。

  1. 卸载您从源代码安装的脚本。请参阅源代码附带的说明以了解如何操作。没有单一的方法可以卸载无法与系统的包管理配合使用的已安装软件脚本。
  2. 安装您在问题中链接的说明中列出的软件包。
  3. 验证which npm现在列出的/usr/bin安装路径。

一般情况下,您永远都不需要从源代码安装软件包。如果您这样做,请注意后果,因为您在这里覆盖了软件包管理,并且会因此而感到困惑。

相关内容