2014-10-20 111 views
0

操作系统,安装步兵:苹果无法通过终端

所以我试图通过键入以下到我的终端(/usr/local/bin)安装步兵:

npm install -g grunt-cli 

但我得到这个结果:

Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli' 
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli'] 
npm ERR! errno: 3, 
npm ERR! code: 'EACCES', 
npm ERR! path: '/usr/local/lib/node_modules/grunt-cli', 
npm ERR! fstream_type: 'Directory', 
npm ERR! fstream_path: '/usr/local/lib/node_modules/grunt-cli', 
npm ERR! fstream_class: 'DirWriter', 
npm ERR! fstream_stack: 
npm ERR! [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23', 
npm ERR!  '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53', 
npm ERR!  'Object.oncomplete (fs.js:107:15)' ] } 
npm ERR! 
npm ERR! Please try running this command again as root/Administrator. 

npm ERR! System Darwin 13.4.0 
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "grunt-cli" 
npm ERR! cwd /usr/local/bin 
npm ERR! node -v v0.10.32 
npm ERR! npm -v 1.4.28 
npm ERR! path /usr/local/lib/node_modules/grunt-cli 
npm ERR! fstream_path /usr/local/lib/node_modules/grunt-cli 
npm ERR! fstream_type Directory 
npm ERR! fstream_class DirWriter 
npm ERR! code EACCES 
npm ERR! errno 3 
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli' 
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23 
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53 
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /usr/local/bin/npm-debug.log 
npm ERR! not ok code 0 

......那看起来不太开心!有人可以帮我从这里出去吗?

注意:我最初也试过只从我的usr开始,没有/local/bin,但是也出现了错误。

回答

0

我得到了同样的结果(OSX 10.9.5)。这可能无关紧要你在哪里运行命令 - 我希望你会看到完全相同的路径出错。

这个问题似乎是NPM希望把全球范围内安装的软件包/usr/local/下(每https://www.npmjs.org/doc/files/npm-folders.html,在* nix系统,这里包括OSX在/usr/local/bin可执行文件和模块/usr/local/lib/node_modules)。这在Mac上不能写入您的用户。

你的选项可能有几个:

你可以安装本地的项目,而不是全球(省略-g)。这意味着您需要在您想要使用它的其他项目中重新安装该软件包。这也意味着当您访问该项目以指向项目(export PATH=$PATH:./node_modules/bin)下的任何二进制文件(例如,grunt)时,您需要将其设置为PATH,这可以通过脚本完成,但可能仍然很烦人。

您也可以使用sudo再次运行安装,但那里存在一些风险(在https://stackoverflow.com/a/25259232/1795230中指出)。

最后,您可以更改'前缀'(通过npm config set prefix ~/npm),如下所示:https://stackoverflow.com/a/21712034/1795230。正如在评论NPM won't install any package on Mac. New, clean build. `EACCES` & other errors中指出的那样,这对于真实(仅针对用户的所有项目而言是全球性的)而言不具有“全局性”的缺点,但根据您的具体情况,这可能会很顺利(适用于我的本地开发机器)。