【问题标题】:Unable to install global modules using sudo npm无法使用 sudo npm 安装全局模块
【发布时间】:2015-05-31 06:53:19
【问题描述】:

我试图从非 root 用户使用 sudo 安装 pm2,sails.js for Node.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

【问题讨论】:

  • 可能/usr/local/bin/ 不在您的PATH 中。当您运行echo $PATH 时,您是否在结果中看到/usr/local/bin
  • 我重新安装了我的服务器。但是我如何在没有 sudo 的情况下安装 node.js 和 npm 以避免将来出现这个问题。我之前使用上述过程安装。 (有问题更新)
  • 我一直使用this method,它来自npm 的创建者Isaac Schlueter。如果您想尝试,在同一个 gist 文件中还有其他方法。
  • 非常感谢您向我指出该方法。我选择第一个。 :-)
  • 当我尝试执行最后一个命令 curl npmjs.org/install.sh | sh --- 我得到一个错误:sh: line 1: Moved: command not found :-(

标签: node.js npm sails.js pm2


【解决方案1】:

表示npm没有用sudo安装,所以不在root的路径下。我认为,最好始终使用不带“sudo”的 npm。因为您可以在本地环境中使用 npm 安装软件包。

如果你真的想用sudo,你可以用sudo重新安装node。

【讨论】:

  • 我重新安装了我的服务器。但是我如何在没有 sudo 的情况下安装 node.js 和 npm 以避免将来出现这个问题。我之前使用上述过程安装。 (有问题更新)
  • 我直接用预建的二进制包安装node(up-package,设置路径和使用),其中npm已经打包。而且它会很容易使用。
  • 如果可能的话,请建议如何直接从二进制安装?谢谢。
【解决方案2】:

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

$节点-v

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

$npm -v

如果它没有给出版本可能是你的环境路径没有设置然后执行

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

只需检查 node -v 和 npm -v 。如果 npm 给出版本号。而已。它将安装全局包。

【讨论】:

    【解决方案3】:

    非常感谢所有帮助过我的人!就像@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,但这对我有用。

    谢谢。

    【讨论】:

      猜你喜欢
      • 2018-08-11
      • 2011-08-14
      • 2013-10-21
      • 1970-01-01
      • 2012-09-17
      • 2020-10-23
      • 2015-03-25
      • 2015-02-07
      相关资源
      最近更新 更多