我按照提供的说明安装了 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
现在显示的安装路径可以看出这一点。
- 卸载您从源代码安装的脚本。请参阅源代码附带的说明以了解如何操作。没有单一的方法可以卸载无法与系统的包管理配合使用的已安装软件脚本。
- 安装您在问题中链接的说明中列出的软件包。
- 验证
which npm
现在列出的/usr/bin
安装路径。
一般情况下,您永远都不需要从源代码安装软件包。如果您这样做,请注意后果,因为您在这里覆盖了软件包管理,并且会因此而感到困惑。