NPM不会在Mac上安装任何软件包。 新的,干净的构build。 EACCES和其他错误

我从头开始重build我的Mavericks(Mac OS X Version 9.4)机器。 我是本机的pipe理员和唯一用户。

  • 我通过git-2.0.1-intel-universal-snow-leopard.pkg ( http://git-scm.com/downloads )在默认的/usr/local/git/bin/git位置安装了/usr/local/git/bin/git
  • 我通过他们的node-v0.10.30.pkg ( http://nodejs.org/download/ )在其默认的/usr/local/bin/node位置安装了/usr/local/bin/node
  • Node的安装程序包的最后一步包括一个注意事项,他们也在默认的/usr/local/bin/npm位置安装了NPM。
  • 我的$PATH回声/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin /usr/local/bin )。

运行npm install -g bower导致:

 npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower' npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/bower'] npm ERR! errno: 3, npm ERR! code: 'EACCES', npm ERR! path: '/usr/local/lib/node_modules/bower', npm ERR! fstream_type: 'Directory', npm ERR! fstream_path: '/usr/local/lib/node_modules/bower', 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:37: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.3.0 npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "bower" npm ERR! cwd /Users/Home npm ERR! node -v v0.10.30 npm ERR! npm -v 1.4.21 npm ERR! path /usr/local/lib/node_modules/bower npm ERR! fstream_path /usr/local/lib/node_modules/bower 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/bower' 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:37:53 npm ERR! fstream_stack Object.oncomplete (fs.js:107:15) npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /Users/Home/npm-debug.log npm ERR! not ok code 0 

运行类似的安装( npm install -g yonpm install -g gruntnpm install -g nvmnpm install -g npm )会导致出现相同的错误列表。

有几个人在线build议通过sudo强制安装,但其他几个人警告这可能会导致以后的问题。 这些软件包的手册似乎没有提到sudo要求,在某些情况下,他们build议在发生此问题时联系NPM。

运行npm cache clear不能解决问题。

在home( ~ )目录中运行ls -la将显示我的Mac OS X用户名作为我的.npm目录的所有者: drwxr-xr-x 15 admin staff 510 Aug 11 23:53 .npm

有谁知道出了什么问题,以及如何纠正? 谢谢。

顺便说一下,我通过将/usr/local的所有者更改为我自己来解决此问题,以便允许NPM将模块置于默认位置,而不需要每个包的安装都需要sudo

 sudo chown -R `whoami` /usr/local 

EACCES是无法进行操作的错误。

采取行: npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower' npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower'我们可以看到npm无法在给定的位置创build一个目录。

原因很可能是您没有以超级用户的身份运行该命令。 事实上,错误日志甚至提示:

npm ERR! 请尝试以root / Administrator身份再次运行此命令。

要以pipe理员身份运行,必须在sudo加上这些命令。 那是:

sudo npm install -g bower 。 出于安全原因,您将被要求input密码。

开始新鲜删除之前的node.js和npm安装以及这些:

〜/ .npmrc〜/ .npm〜/ tmp〜/ .npm-init.js

安装nodejs和npm作为你自己不要做root这些命令(linux):

 mkdir ${HOME}/bin 

http://nodejs.org/download/下载源代码

 cd v0.10.30/ ./configure --prefix=${HOME}/bin/nodejs make -j8 make install 

把它放到上面定义的dir中–prefix

 export PATH=${HOME}/bin/nodejs/bin:$PATH 

NODE_PATH,所以节点可以find模块的目录,否则npm安装xxx会把新安装的模块放到目录curr目录中:

 export NODE_PATH=${HOME}/bin/nodejs/lib/node_modules 

做以上操作并使用语法:npm install xxxxx -g总是使用-g作为全局

nodejs install也给你npm:

 ls -la ${HOME}/bin/nodejs/bin 

我build议你使用版本pipe理器(如nvm)来安装Node.js。 这样,你一箭双雕,

  • 首先,你可以在同一台机器上pipe理Node.js的多个版本(迟早你会这样做的)。
  • 其次,你解决了在没有安装Node.js时遇到的所有访问问题。 至less这是我的经验。

基本上就像跑步一样简单

 $ curl https://raw.githubusercontent.com/creationix/nvm/v0.24.1/install.sh | bash 

从命令行。