node / npm无法通过OSX 10.9.4上的brew进行安装

我认为这是一个新的问题,花了几个小时才弄明白:

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

安装npm的问题解决了(感谢https://github.com/Homebrew/homebrew/issues/28501#issuecomment-53907840 ):

 $ brew update $ sudo chown -R $USER /usr/local 

但是这个搞砸了我的系统。 直到我在磁盘实用程序中运行修复磁盘权限之前,我无法再使用“sudo”。

将这些系统库的所有权更改为您的最终用户帐户是不安全的 – 另外,由于已知的安全原因,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 

把它放到上面定义的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