【问题标题】:how to install npm after purge清除后如何安装npm
【发布时间】:2026-02-09 23:00:01
【问题描述】:

作为我need an updated version of NodeJS,我先删除旧版本... 作者:

 apt-get remove --purge nodejs
 apt-get remove --purge node
 apt-get autoremove

...after sucess on install last version of NodeJS,我运行了 npm 安装程序,

 node --version  # now is ok!
 sudo apt-get install npm  # ERROR!!!!

那么,如何在这种情况下安装 npm(在此清除过程之后)

编辑:

PS:正如我通过上面的链接和上面的 inline-comment 显示的那样,nodejs --version 可以,很好,没问题。这个问题是关于npmapt-get...现在我看到that part of the answer is here


错误消息,same as this similar question

The following packages have unmet dependencies:
 npm : Depends: nodejs but it is not going to be installed
       Depends: node-abbrev (>= 1.0.4) 
       Depends: nodejs-dev
       ...
       Depends: ... but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

【问题讨论】:

    标签: ubuntu npm apt-get


    【解决方案1】:

    ...没人说,但问题不是我的NodeJS或我的UBUNTU,问题就像sudo apt-get install npm的一个bug,这个命令有一个bug:需要修复消息。

    作为sayd here in similar questionnpm 是由现代 NodeJS 安装的(!!),所以 apt-get 必须说“好的,没问题,你有一个好的和更新的npm”。

    结论:

    1. 仅使用带有正确setup_N.x 选项的“curl + apt”命令,如此处发布的所有链接所示。 nodejs的安装也会同时安装npm

    2. 不要使用apt-get install npm,避免使用它。是一个错误。


    注意:典型的“curl + apt”是

     curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
     sudo apt-get install -y nodejs
    

    并且,在此安装过程成功后,要检查 npm 是否存在,请使用

      npm --version
    

    所以,如果显示版本号(如 3.3.12),则说明 npm 已安装!

    重要提示:要更新 npm(例如,从 3.3.12 到 3.5.2)不使用 apt-get (!),请使用 npm本身,

     sudo npm install npm -g
    


    编辑 2017

    今天,2017 年,在 UBUNTU 16 LTS,是可能的......并且只使用 atp(最友好的 tham apt-get):

    sudo apt update
    sudo apt install nodejs  # need it first!
    sudo apt install npm
    

    ...但是...它是“缓慢 LTS 的最新版本”,...检查每个版本(!)...

    分步针对特定版本选择(v6.x 为插图),如this tutorial

    1. curl -sL https://deb.nodesource.com/setup_6.x -o nodesource_setup.sh

    2. sudo bash nodesource_setup.sh

    3. atp install nodejs

    【讨论】:

      【解决方案2】:

      删除 nodejs 并修复损坏的包。

      sudo apt-get --purge remove nodejs node npm
      sudo apt-get clean
      sudo apt-get autoclean
      sudo apt-get -f install
      sudo apt-get autoremove
      

      使用 PPA 安装 nodejs

      curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
      sudo apt-get install -y nodejs
      

      为节点创建一个符号链接,因为许多 Node.js 工具使用此名称来执行。

      sudo ln -s /usr/bin/nodejs /usr/bin/node
      

      要从 npm 编译和安装本机插件,您可能还需要安装构建工具:

      sudo apt-get install -y build-essential
      

      【讨论】:

      • 谢谢,一切正常(nodejsnode 等),正如我通过链接显示的那样(不是节点 4.X 是节点 5.X)...而且,正如我更多关注at the similar erro link,我的npm 没有问题,它就在那里(!!)...问题在于 UBUNTU 在apt-get 中没有提及错误:现在安装了npm nodejs.
      • sudo apt-get autoremove 我猜很危险