npm在npm update上卸载自己

时间:2014-11-26 00:27:26

标签: node.js npm

我在stackoverflow中找了一个类似的主题,但找不到一个,所以就这样了。

我一直在http://learn.mean.io/查看MEAN堆栈文档,只是检查一些shell命令。

我尝试通过

更新npm
npm update -g npm

但这出现了错误

npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR!  { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/npm' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 14.0.0
npm ERR! command "node" "/usr/local/bin/npm" "update" "-g" "npm"
npm ERR! cwd /Users/cihankoseoglu
npm ERR! node -v v0.10.33
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/npm
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back Error: EACCES, unlink '/usr/local/lib/node_modules/npm'
npm ERR! error rolling back  { [Error: EACCES, unlink '/usr/local/lib/node_modules/npm']
npm ERR! error rolling back   errno: 3,
npm ERR! error rolling back   code: 'EACCES',
npm ERR! error rolling back   path: '/usr/local/lib/node_modules/npm' }
npm ERR! not ok code 0

所以我试过

sudo npm update -g npm

但运行此命令后,我的zsh shell无法找到npm。当我输入任何npm命令时,它只返回未找到的命令。我不得不重新安装Node。什么可能导致这个?是不是因为我不熟悉的原因而在后台卸载npm或改变它的PATH?

1 个答案:

答案 0 :(得分:0)

这是经过验证的Node.js安装技术,之后是你的npm更新 命令将运行正常

以下是从源代码安装Node.js的步骤(OSX / linux) 你可能/应该发布所有这些cmd,因为你自己不是root(sudo)

注意 - 这会安装Node.js,它既可以提供节点也可以提供npm,        他们每次发布都会聚在一起。

开始新的删除先前节点和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

http://nodejs.org/download/

下载源代码
cd node-v0.10.33

将环境变量NODE_PATH定义为后续模块安装的目录

export NODE_PARENT=/some/desired/install/path_goes_here

export NODE_PARENT=/usr/local/bin/nodejs    # use this if you want to install as root (sudo)
export NODE_PARENT=${HOME}/nodejs-v0.10.33  # use this if you want to install modules as yourself

export PATH=${NODE_PARENT}/bin:${PATH}
export NODE_PATH=${NODE_PARENT}/lib/node_modules

./configure   --prefix=${NODE_PARENT}

make
make install

将其放入上面--prefix

定义的目录中

使用语法时:npm install -g some_cool_module -g for global将它安装到dir $ NODE_PATH而不是你的$ PWD

现在把三个导出xxx = yyy 命令到你的〜/ .bashrc或其他一些来保持这些环境变量的变化