No se puede instalar npm: ¿no puede corregir los problemas, ha retenido paquetes rotos?

27

Estoy tratando de actualizar mi nodejs a 7.6 pero fallé. Ahora tengo un nuevo problema después de reinstalar el nodo 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

¿Por qué dice eso Package 'npm' is not installed, so not removed? ¡He estado usando npm para instalar muchos paquetes de nodos para mis proyectos!

Ignoro el error y seguí instalando el nodo 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>

Entonces volví al nodo 6.x. Pero ya no puedo instalar npm:

$ 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.

¿Algunas ideas?

laukok
fuente
2
por favor intente esto sudo apt install -f, luego intente instalar de nuevo!
George Udosen

Respuestas:

41

Tuve el mismo problema con npm y tuve que instalar los siguientes paquetes en orden:

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

Espero que esto ayude

dvillaj
fuente
1
He estado luchando con esto durante un par de horas y funcionó a las mil maravillas. ¡Gracias!
desveladisimo
(En Kubuntu 18.04) Había instalado previamente libssl-dev, que resulta corresponder a libssl1.1, pero aparentemente npm requiere 1.0. Tuve que eliminar libssl-dev y reemplazarlo con libssl1.0-dev, y todo funcionó bien. Los errores de apt no fueron útiles para determinar qué estaba mal, por lo que su respuesta fue un salvavidas.
Richard Hussong
¡Sí! ¡Gracias! (Ubuntu 18.04.3 LTS)
Toni Homedes i Saun
Muchas gracias, me ayuda
Muthusamy
34

Tuve el mismo problema con npm.

Te sugiero que instales aptitude que puede ayudarte a resolver conflictos

sudo apt install aptitude

luego instala tu paquete con aptitude

sudo aptitude install npm
Shakirah
fuente
1
La mejor solución debe probar si obtiene un error de dependencia insatisfecho
Rj_Innocent_Coder
Realmente genial tener esto. Esto resolvió el problema
Jerrychayan
Tuve un problema de dependencia. La única solución que pude encontrar. Gracias.
karjedavpalaa