node / npm无法在OSX 10.9.4上通过brew安装

时间:2014-08-29 19:04:58

标签: node.js npm homebrew

我认为这是一个新问题&我花了几个小时来搞清楚:

$ 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',

2 个答案:

答案 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

http://nodejs.org/download/

下载源代码
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