代码之家  ›  专栏  ›  技术社区  ›  Vijay Rajasekaran

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

  •  1
  • Vijay Rajasekaran  · 技术社区  · 9 年前

    我试图用sudo从非root用户安装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
    
    3 回复  |  直到 9 年前
        1
  •  0
  •   Mavlarn    9 年前

    这意味着npm没有与sudo一起安装,因此它不在root路径中。我认为,最好总是使用没有“sudo”的npm。因为您可以在本地环境中使用npm安装打包的。

    如果您确实想与sudo一起使用,可以使用sudo重新安装node。

        2
  •  0
  •   user3824582    9 年前

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

    $node-v

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

    npm美元-v

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

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

    只需检查node-v和npm-v。如果npm提供版本号。就是这样。它将安装全局包。

        3
  •  0
  •   Vijay Rajasekaran    9 年前

    非常感谢所有帮助我的人!就像@Rodrigo Medeiros建议我的那样,我使用以下方法安装了node.js和npm( https://gist.github.com/isaacs/579814#file-take-ownership-sh )但根据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 -v npm -v

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

    谢谢