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

jth*_*ter 11 macos bash terminal node.js npm

我只是从头开始重建我的Mavericks(Mac OS X Version 9.4)机器.我是该机器的管理员和唯一用户.

  • 我通过他们的git-2.0.1-intel-universal-snow-leopard.pkg(http://git-scm.com/downloads)在默认/usr/local/git/bin/git位置安装了Git .
  • 我通过他们的node-v0.10.30.pkg(http://nodejs.org/download/)在他们的默认/usr/local/bin/node位置安装了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
Run Code Online (Sandbox Code Playgroud)

运行类似安装(npm install -g yo,npm install -g grunt,npm install -g nvm,npm install -g npm)的结果似乎是错误的同一列表.

网上有几个人建议通过强制安装sudo,但其他几个人警告这可能导致以后的问题.这些软件包的手册似乎没有提及要求sudo,在某些情况下,他们建议在出现此问题时联系NPM.

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

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

有谁知道出了什么问题以及如何纠正这个问题?谢谢.

jth*_*ter 13

顺便说一句,我通过更改/usr/local自己的所有者解决了这个问题,以便允许NPM在其默认位置使用模块,而无需进一步要求sudo每个软件包的安装.

sudo chown -R `whoami` /usr/local
Run Code Online (Sandbox Code Playgroud)

  • `chown:/ usr/local:不允许操作 (6认同)
  • 即使使用sudo,我也收到“不允许操作”的信息。这个应该简单的设置是一场噩梦!!! (2认同)

ala*_*rev 8

EACCES是无法访问操作的错误.

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

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

错误的ERR!请尝试以root/Administrator身份再次运行此命令.

要以管理员身份运行,您必须为这些命令添加前缀sudo.那是:

sudo npm install -g bower.出于安全原因,您需要输入密码.