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
Related videos on Youtube
Comments
-
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 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.