在尝试修复JPG兼容性问题时,我在尝试在Mac OSX(优胜美地)上更新npm时遇到了以下错误。请注意,我没有通过自制软件安装,而是通过官方软件包安装。(我正在使用版本 0.10.37 来抵消另一个 NPM 包问题)。
以下是我采取的步骤:
-
brew uninstall node
和brew uninstall npm
三重确定的节点不存在于我的系统上通过自制软件。输出符合预期,Error: No such keg: /usr/local/Cellar/node
-
从 http://nodejs.org/dist/v0.10.37/下载软件包并安装它。
-
node -v
以验证是否已安装节点。 -
npm update -g npm
这是最后一个命令的输出:
$ npm update -g npm
npm ERR! Refusing to delete: /usr/local/share/man/man3/npm-bin.3 not in /usr/local/lib/node_modules/npm
File exists: /usr/local/share/man/man3/npm-bin.3
Move it away, and try again.
npm ERR! System Darwin 14.1.0
npm ERR! command "node" "/usr/local/bin/npm" "update" "-g" "npm"
npm ERR! cwd /Users/topher
npm ERR! node -v v0.10.37
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/share/man/man3/npm-bin.3
npm ERR! code EEXIST
npm ERR! error rolling back Error: Refusing to delete: /usr/local/share/man/man3/npm-bin.3 not in /usr/local/lib/node_modules/npm
npm ERR! error rolling back at clobberFail (/usr/local/lib/node_modules/npm/lib/utils/gently-rm.js:57:12)
npm ERR! error rolling back at next (/usr/local/lib/node_modules/npm/lib/utils/gently-rm.js:43:14)
npm ERR! error rolling back at /usr/local/lib/node_modules/npm/lib/utils/gently-rm.js:52:12
npm ERR! error rolling back at Object.oncomplete (evalmachine.<anonymous>:108:15)
npm ERR! error rolling back { [Error: Refusing to delete: /usr/local/share/man/man3/npm-bin.3 not in /usr/local/lib/node_modules/npm] code: 'EEXIST', path: '/usr/local/share/man/man3/npm-bin.3' }
npm ERR! not ok code 0
当我删除上述文件并重试时,出现另一个错误,因为npm
命令不再存在。看起来更新部分成功,因为删除了npm
命令:
$ npm
-bash: /usr/local/bin/npm: No such file or directory
当我搜索这个"拒绝删除"错误时,我看到了大量关于如何修复拙劣的自制软件安装的建议(以及一些关于如何删除自制软件包的不必要的居高临下的说明。但我不是通过自制软件安装软件包;我在那里找到的建议似乎与我的情况无关。
我应该如何对此进行故障排除?其他人知道/有这个问题/能想到快速解决方案吗?
提前感谢!
这不是一个完整的答案,但只是为了跟进,我找到了解决此问题的方法。
我的最终需求是让node
在安装软件包的情况下运行resemble
。相似依赖于cairo
,这是通过自制软件安装的;看来这是我的第一个错误。由于开罗显然安装不当,因此缺少几个包裹;这迫使我使用一种触发其他错误并需要其他解决方法的解决方法......等等。
当我删除Cairo自制软件包,而是从源代码构建Cairo(使用本指南)时,我刚刚消失了其他几个错误。
所以我学到的教训是:不要将Homebrew用于任何finnicky,或者任何finnicky的依赖项。
我通过以下方式解决它:
rm /usr/bin/npm
/usr/lib64/node_modules/npm/bin/npm-cli.js install npm -g
npm -v # success !