Can't install npm - Unable to correct problems, you have held broken packages?

81,234

Solution 1

I had the same issue with npm and had to install the following packages in order:

sudo apt install libssl1.0-dev
sudo apt install nodejs-dev
sudo apt install node-gyp
sudo apt install npm

Hope this helps

Solution 2

I had the same issue with npm.

I suggest you install aptitude which can help you resolve conflicts

sudo apt install aptitude

then install your package with aptitude

sudo aptitude install npm

Solution 3

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* ~/.npm
sudo rm -rf /usr/local/lib/node*
sudo rm -rf /usr/local/bin/node*
sudo rm -rf /usr/local/include/node*

sudo apt-get purge nodejs npm
sudo apt autoremove

Then install node and npm

Solution 4

This works for me:

sudo apt install aptitude
sudo aptitude install libnode-dev                        
sudo aptitude install libnode64
sudo aptitude install node-gyp
sudo aptitude install npm
Share:
81,234

Related videos on Youtube

Run
Author by

Run

A cross-disciplinary full-stack web developer/designer.

Updated on September 18, 2022

Comments

  • Run
    Run almost 2 years

    I am trying to upgrade my nodejs to 7.6 but failed. Now I have a new problem after re-installing node 6.10:

    $ sudo apt-get purge nodejs npm
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Package 'npm' is not installed, so not removed
    The following packages were automatically installed and are no longer required:
      linux-headers-4.8.0-40 linux-headers-4.8.0-40-generic linux-image-4.8.0-40-generic linux-image-extra-4.8.0-40-generic
    Use 'sudo apt autoremove' to remove them.
    The following packages will be REMOVED
      nodejs*
    0 to upgrade, 0 to newly install, 1 to remove and 53 not to upgrade.
    After this operation, 51.7 MB disk space will be freed.
    Do you want to continue? [Y/n] y
    (Reading database ... 278133 files and directories currently installed.)
    Removing nodejs (6.9.5-1nodesource1~yakkety1) ...
    Processing triggers for man-db (2.7.5-1) ...
    (Reading database ... 274476 files and directories currently installed.)
    Removing nodejs (6.9.5-1nodesource1~yakkety1) ...
    Purging configuration files for nodejs (6.9.5-1nodesource1~yakkety1) ...
    dpkg: warning: while removing nodejs, directory '/usr/lib/node_modules' not empty so not removed
    

    Why does it say Package 'npm' is not installed, so not removed? i have been using npm to install many node packages for my projects!!

    I ignore the error and went on installing node 7.6:

    $ curl -sL https://deb.nodesource.com/setup_7.6 | sudo -E bash - 
    bash: line 1: html: No such file or directory
    bash: line 2: syntax error near unexpected token `<'
    'ash: line 2: `<head><title>404 Not Found</title></head>
    

    So I fell back to node 6.x. But I cannot install npm anymore:

    $ sudo apt-get install npm
    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies.
     npm : Depends: nodejs but it is not going to be installed
           Depends: node-abbrev (>= 1.0.4) but it is not going to be installed
           Depends: node-ansi (>= 0.3.0-2) but it is not going to be installed
           Depends: node-ansi-color-table but it is not going to be installed
           Depends: node-archy but it is not going to be installed
           Depends: node-block-stream but it is not going to be installed
           Depends: node-fstream (>= 0.1.22) but it is not going to be installed
           Depends: node-fstream-ignore but it is not going to be installed
           Depends: node-github-url-from-git but it is not going to be installed
           Depends: node-glob (>= 3.1.21) but it is not going to be installed
           Depends: node-graceful-fs (>= 2.0.0) but it is not going to be installed
           Depends: node-inherits but it is not going to be installed
           Depends: node-ini (>= 1.1.0) but it is not going to be installed
           Depends: node-lockfile but it is not going to be installed
           Depends: node-lru-cache (>= 2.3.0) but it is not going to be installed
           Depends: node-minimatch (>= 0.2.11) but it is not going to be installed
           Depends: node-mkdirp (>= 0.3.3) but it is not going to be installed
           Depends: node-gyp (>= 0.10.9) but it is not going to be installed
           Depends: node-nopt (>= 3.0.1) but it is not going to be installed
           Depends: node-npmlog but it is not going to be installed
           Depends: node-once but it is not going to be installed
           Depends: node-osenv but it is not going to be installed
           Depends: node-read but it is not going to be installed
           Depends: node-read-package-json (>= 1.1.0) but it is not going to be installed
           Depends: node-request (>= 2.25.0) but it is not going to be installed
           Depends: node-retry but it is not going to be installed
           Depends: node-rimraf (>= 2.2.2) but it is not going to be installed
           Depends: node-semver (>= 2.1.0) but it is not going to be installed
           Depends: node-sha but it is not going to be installed
           Depends: node-slide but it is not going to be installed
           Depends: node-tar (>= 0.1.18) but it is not going to be installed
           Depends: node-underscore but it is not going to be installed
           Depends: node-which but it is not going to be installed
    E: Unable to correct problems, you have held broken packages.
    

    Any ideas?

  • Richard Hussong
    Richard Hussong almost 5 years
    (On Kubuntu 18.04) I had previously installed libssl-dev, which turns out to correspond to libssl1.1, but npm apparently requires 1.0. I had to remove libssl-dev and replace it with libssl1.0-dev, and everything then worked fine. The apt errors were not useful in determining what was wrong, so your answer was a life-saver.