我认为这是一个新问题&我花了几个小时来搞清楚:
$ brew install node -v
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/node- 0.10.31.mavericks.bottle.tar.gz
...
npm ERR! Error: EACCES, mkdir '/../.npm/nopt/2.1.2'
npm ERR! { [Error: EACCES, mkdir '/../.npm/nopt/2.1.2']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
答案 0 :(得分:1)
安装npm的问题已经解决了(感谢https://github.com/Homebrew/homebrew/issues/28501#issuecomment-53907840):
$ brew update
$ sudo chown -R $USER /usr/local
但这搞砸了我的系统。我无法使用' sudo'直到我在磁盘工具中运行修复磁盘权限。
答案 1 :(得分:0)
将这些系统库的所有权更改为最终用户帐户是不安全的 - 另外,出于安全原因,Web服务器永远不应该由root拥有,因此节点也是如此 - 您已经将您的框打开为邪恶
这是在OSX / linux上安装node / npm的安全方法
开始新鲜删除之前的node.js和npm安装以及以下内容:
sudo mv ~/.npmrc ~/.npmrc_ignore
sudo mv ~/.npm ~/.npm_ignore
sudo mv ~/tmp ~/tmp_ignore
sudo mv ~/.npm-init.js ~/.npm-init.js_ignore
安装nodejs和npm作为你自己不root用户执行这些命令(linux):
mkdir ${HOME}/bin
下载源代码
cd node-v0.10.31
./configure --prefix=${HOME}/bin/nodejs
make -j8
make install
将其放入上面--prefix
定义的目录中export PATH=${HOME}/bin/nodejs/bin:$PATH
NODE_PATH因此节点可以找到模块的dir npm install xxx会将新安装的模块放入curr目录中的dir:
export NODE_PATH=${HOME}/bin/nodejs/lib/node_modules
执行上面的操作并使用语法:npm install xxxxx -g 始终使用-g进行全局
nodejs install也为你提供了npm:
ls -la ${HOME}/bin/nodejs/bin