尝试为Node.js安装npm时出错

时间:2011-10-09 17:11:12

标签: javascript node.js npm

我正在学习Node.js,我在安装NPM(Node Package Manager)时遇到了一些问题。我很确定这是一个权限或文件夹的东西......请注意我刚刚购买了一台Mac(我一生都使用过Windows),而且我对Mac终端非常不熟悉。

好的,我去使用NPM的一行安装:curl http://npmjs.org/install.sh | sh我收到了错误...

All clean!
! [ -d .git ] || git submodule update --init --recursive
node cli.js rm npm -g -f
node cli.js install -g -f
npm ERR! Could not create /usr/local/lib/node_modules/___npm.npm
npm ERR! error installing npm@1.0.94 Error: EACCESS, Undefined error: 0 '/usr/local/lib/node_modules'
npm ERR! Error: EACCESS, Undefined error: 0 '/usr/local/lib/node_modules'
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Darwin 11.0.0
npm ERR! command "node" "/private/var/folders/z2/f05c8hx105g79drh6r7hr01w0000gn/T/npm.1219/package/cli.js" "install" "-g" "-f"
npm ERR! cwd /private/var/folders/z2/f05c8hx105g79drh6r7hr01w0000gn/T/npm.1219/package
npm ERR! node -v v0.5.9-pre
npm ERR! npm -v 1.0.94
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCESS
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /private/var/folders/z2/f05c8hx105g79drh6r7hr01w0000gn/T/npm.1219/package/npm-debug.log
npm not ok
make: *** [install] Error 1
npm ERR! Could not create /usr/local/lib/node_modules/___npm.npm
npm ERR! error installing npm@1.0.94 Error: EACCESS, Undefined error: 0 '/usr/local/lib/node_modules'
npm ERR! Error: EACCESS, Undefined error: 0 '/usr/local/lib/node_modules'
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Darwin 11.0.0
npm ERR! command "/usr/local/bin/node" "/private/var/folders/z2/f05c8hx105g79drh6r7hr01w0000gn/T/npm.1219/package/cli.js" "install" "-gf"
npm ERR! cwd /private/var/folders/z2/f05c8hx105g79drh6r7hr01w0000gn/T/npm.1219/package
npm ERR! node -v v0.5.9-pre
npm ERR! npm -v 1.0.94
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCESS
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /private/var/folders/z2/f05c8hx105g79drh6r7hr01w0000gn/T/npm.1219/package/npm-debug.log
npm not ok
It failed

这里显然有一个文件夹问题,也许我在错误的位置安装,我的节点文件夹在Users / Mike / node,当我尝试使用NODE_PATH找出我的节点路径变量时,我收到以下错误:< / p>

Michaels-MacBook-Pro:~ Mike$ node node/NODE_PATH  

node.js:203
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: Cannot find module '/Users/Mike/node/NODE_PATH'
    at Function._resolveFilename (module.js:334:11)
    at Function._load (module.js:279:25)
    at Array.<anonymous> (module.js:470:10)
    at EventEmitter._tickCallback (node.js:195:26)

有人可以告诉我我做错了什么吗?我是否需要像这样添加节点路径:

$ export PATH=/path/to/node/0.n.y/bin:${PATH}
$ curl http://npmjs.org/install.sh | sh

或者我在困惑自己?

5 个答案:

答案 0 :(得分:21)

/usr/local上的权限要求您使用sudo安装NPM,或更改您的权限。在这三个中,我推荐第三个选项

选项#1:使用sudo

(请注意,NPM的创建者advises against using this method

curl http://npmjs.org/install.sh | sudo sh

选项#2:更改权限

sudo chmod g+rwx /usr/local
sudo chgrp admin /usr/local

选项#3:使用Homebrew

我建议installing Homebrew管理在OS X上安装* nix工具(我远离MacPorts&amp; Fink)。安装Homebrew将设置/usr/local的权限,以便您可以在不sudo的情况下写入。然后,您可以通过Homebrew安装Node,然后正常安装NPM:

brew install node --without-npm
curl http://npmjs.org/install.sh | sh

答案 1 :(得分:0)

使用curl http://npmjs.org/install.sh | sudo sh

编辑:你正在使用node -v v0.5.9-pre,这是非常不稳定的。使用0.4.12,最新的稳定版本。

答案 2 :(得分:0)

如果您使用的是Windows,则需要一些步骤,1)创建一个名为package.json的文件

{   “名字”:“你好” ,“版本”:“0.0.1” ,“依赖”:{     “表达”: ”*”   } } 其中hello是包的名称,*表示依赖项的最新版本

2)项目目录的代码并运行以下命令

npm install

答案 3 :(得分:0)

作为OSX上方法#3的更新,现在正确的命令是:

brew install node --without-npm
curl https://www.npmjs.org/install.sh | sh

答案 4 :(得分:0)

选项#4:

将节点本地安装到需要它的用户。

我应该为了我的目的澄清我需要npm在运行Bamboo的OSX服务器上安装appium以进行集成测试。我只有macports可用,而不是安装自制软件来管理我决定从源代码构建它的一个软件包,并将其安装在本地用户。这让我们可以像竹子用户一样运行appium,并且可以在Bamboo上运行我们的appium测试作为一个非常特权的用户。

This guide from Tom Novelli 了解了如何做到这一点。基本要点是:

# Make the dir to hold the installation of node
cd
mkdir ./local
mkdir sources
# Tell npm about your new non-default directories
vi .npmrc 
cd sources
# Get node and do the typical source install procedure
wget http://nodejs.org/dist/v0.10.29/node-v0.10.29.tar.gz
tar xf node-v0.10.29.tar.gz
cd node-v8.10.29/
# Important part is the --prefix
./configure --prefix=~/.local
make
make install
# Make a link so node doesn't get confused
cd
ln -s .local/lib/node_modules .node_modules
# Edit PATH to include ~/.local
vi .bashrc

.npmrc

root =    /home/YOUR-USERNAME/.local/lib/node_modules
binroot = /home/YOUR-USERNAME/.local/bin
manroot = /home/YOUR-USERNAME/.local/share/man

.bashrc或.profile或者您喜欢设置路径

export PATH=$HOME/.local/bin:$PATH

有用的链接

.npmrc手册页很有用。

以防这里是node source的链接。