我将机器升级到Yosemite后出现问题,每当我运行sudo时npm install -g ...
我收到错误说
/ usr / bin / dyld:DYLD_环境变量被忽略,因为主可执行文件(/ usr / bin / sudo)是setuid或setgid
例如,尝试使用
安装gulpsudo npm install -g gulp
并得到了同样的错误!无法找到这个问题背后的原因
答案 0 :(得分:0)
通常这意味着现有的全球安装包状况不佳。可能与权限相关,但如果没有关于环境的更多信息则很难确定。
解决方案在于修复破损的包装。一种方法是删除并重新安装它。试试sudo npm uninstall -g <pkg>
,其中<pkg>
是您怀疑可能被破坏的任何内容。
如果您不确定从哪里开始,请执行以下操作:
npm list -g --depth=0
这将显示所有全局安装的软件包。只需逐个删除并重新安装它们。
如果在删除过程中出现任何错误,您需要自己手动执行此操作。
首先,找出安装全局包的位置。通常,例如,这将在OS X上为/usr/local
。要确定:
npm config get prefix
然后浏览该目录,尤其是/usr/local/bin
(例如),如果您确定文件与全局npm包相关,则删除它通常是安全的。
`sudo rm -rf <file>`
...其中<file>
是您要删除的实际文件名。
由于过度使用sudo
,你可能已陷入混乱。
请参阅我对SNAFU with npm update -g的答案,了解sudo
为何错误以及如何解决问题的说明。