无法使用sudo npm安装全局模块

时间:2015-03-27 02:28:17

标签: node.js npm sails.js pm2

我试图从一个非root用户使用sudo为Node.js安装pm2,sails.js。我收到以下错误:

sudo npm install pm2 -g
sudo: npm: command not found

但是当我尝试使用以下命令安装时,它可以正常工作

sudo /usr/local/bin/npm install pm2 -g

我如何让sudo npm工作?

感谢。

我以前如何用su安装Node和npm:

su - 
yum install gcc-c++ openssl-devel python
cd /usr/local/src
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
(cd into extracted folder: ex "cd node-v0.10.3")
./configure
make
make install

3 个答案:

答案 0 :(得分:0)

这意味着npm不是用sudo安装的,所以它不在root的路径中。我认为,最好不要在没有' sudo'的情况下使用npm。因为您可以在本地环境中使用npm保持已安装的打包。

如果您真的想使用sudo,可以使用sudo重新安装节点。

答案 1 :(得分:0)

是的,您的系统上未安装NPM。 您可以先检查节点是否设置完好。

$ node -v

它会给出版本。 如果是,请检查

$ npm -v

如果未提供版本可能是您的环境路径未设置则执行

$ PATH = / usr / bin / node:$ PATH

然后检查节点-v和npm -v。如果npm给出版本号。而已。它将安装全局包。

答案 2 :(得分:0)

非常感谢帮助我的每个人!就像@Rodrigo Medeiros建议我一样,我使用下面的方法(https://gist.github.com/isaacs/579814#file-take-ownership-sh)安装了node.js和npm,但根据deesejohn在该页面发布的评论中的建议修改了两行命令。

cd
sudo yum install gcc-c++
echo 'export PATH=$HOME/local/bin:$PATH' >> ~/.bashrc
. ~/.bashrc
mkdir ~/local
mkdir ~/node-latest-install
cd ~/node-latest-install
curl http://nodejs.org/dist/node-latest.tar.gz | tar xz --strip-components=1
./configure --prefix=$HOME/local
make install # ok, fine, this step probably takes more than 30 seconds...
curl -L https://www.npmjs.org/install.sh | sh

使用node -vnpm -v

检查已安装的版本

现在,我可以在没有sudo权限的情况下全局安装npm模块,有很多方法可以安装node.js和npm,但这对我有用。

感谢。