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