Node Package Manager se corrompió de alguna manera, ahora no se puede instalar

Node Package Manager se corrompió de alguna manera, ahora no se puede instalar

Me encontré con un problema hoy cuando decidí usarlo npm update -gen un directorio de aplicaciones nodejs. Esta fue una mala decisión, porque me hizo toparme con unproblema común y desastroso con npm.

La solución es reinstalar nodejs y npm. Desafortunadamente, cuando voy a instalar npm, sudo apt-get install npmno funciona.

El error completo en la terminal está aquí:

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 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 (>= 2.1.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-which but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

¿Qué puedo hacer para que npm se instale y vuelva a ejecutarse correctamente?

Gracias.

Respuesta1

Actualizar

Con respecto al comentario de William Entriken debajo de esta respuesta, existe una mejor manera de instalar Node.js de forma nativa en Ubuntu como un paquete instantáneo.

Node.js está disponible como un paquete instantáneo en todas las versiones actualmente compatibles de Ubuntu. Específicamente para Node.js, los desarrolladores pueden elegir entre una o más de las versiones actualmente admitidas y obtener actualizaciones automáticas periódicas directamente desde NodeSource. Las versiones 6, 8, 9, 10, 11, 13, 14, 15, 16, 17 y 18 de Node.js están disponibles actualmente, y Snap Store se actualiza pocas horas o minutos después del lanzamiento de Node.js.

Node se puede instalar con un solo comando, por ejemplo:

sudo snap install node --classic --channel 9/stable 

Se puede acceder al complemento de nodo mediante el comando node, por ejemplo:

$nodo -v  
v9.9.0

Se instalará una versión actualizada de npm como parte del complemento del nodo. npm debe ejecutarse fuera de la respuesta del nodo, en su shell normal. Después de instalar el complemento de nodo, ejecute el siguiente comando para habilitar la verificación de actualizaciones de npm:

sudo chown -R $USUARIO:$(id -gn $USUARIO) /home/su nombre de usuario/.config

Reemplazar your-usernameen el comando anterior con su propio nombre de usuario. Luego ejecute npm -vpara verificar si la versión de npm está actualizada. Como ejemplo, verifiqué que npm estuviera actualizado, verifiqué la versión de un paquete ya instalado llamado Yarn con el comando npm list yarny luego actualicé el paquete Yarn existente a la última versión con el comando.npm update yarn

Los usuarios pueden cambiar entre versiones de Node.js en cualquier momento sin necesidad de utilizar herramientas adicionales como nvm (Node Version Manager), por ejemplo:

sudo snap refresh node --channel=8/stable

Los usuarios pueden probar versiones de última generación de Node.js que se pueden instalar desde el último canal de borde cambiando con:

sudo snap switch node --edge

Este enfoque solo se recomienda para aquellos usuarios que estén dispuestos a participar en pruebas e informes de errores en sentido ascendente.


Respuesta original

Para instalar las últimas versiones LTS de Node.js (nodejs) y el Administrador de paquetes para Node.js (npm) en todas las versiones actualmente compatibles de Ubuntu, abra la terminal y ejecute los siguientes comandos:

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs  

Si está copiando estos tres comandos, no olvide el guión al final del segundo comando.

El nodejspaquete contiene el nodejsbinario y el archivo npm, por lo que no es necesario realizar la instalación npmpor separado. Sin embargo, para que algunos npmpaquetes funcionen (como aquellos que requieren compilación desde el código fuente), deberá instalar el build-essentialpaquete:

sudo apt-get install build-essential  

Plan LTS

Las nuevas versiones más importantes de Node.js se eliminan mastercada seis meses. Las nuevas versiones pares (por ejemplo, v6, v8, v10, etc.) se eliminan en abril. Las nuevas versiones impares (por ejemplo, v5, v7, v9) se eliminan en octubre.

Cuando se elimina una nueva versión principal impar, la versión principal par anterior pasa al plan de soporte a largo plazo.

Cada versión principal cubierta por el plan LTS se mantendrá activamente durante un período de 18 meses a partir de la fecha en que entre en la cobertura LTS. Después de esos 18 meses de soporte activo, la versión principal pasará al modo de "mantenimiento" durante 12 meses adicionales.

instalación no LTS

Hasta marzo de 2017, los comandos para instalar la última versión no LTS de Node.js (v8 en el momento de publicación) son los siguientes:

sudo apt-get remove nodejs npm ## remove existing nodejs and npm packages
sudo apt-get install curl  
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs  

Programación LTS de Node.js

Liberar Estado Nombre clave Versión inicial Inicio LTS Inicio de mantenimiento Fin del mantenimiento
6.x fin de vida Boro 2016-04-26 2016-10-18 2018-04-30 2019-04-30
7.x fin de vida 2017-05-30 2017-06-30
8.x fin de vida Carbón 2016-10-25 2017-10-31 2019-01-01 2019-12-31
9.x fin de vida 2017-10-01 2018-06-30
10.x fin de vida dubnio 2018-04-24 2018-10-30 2020-05-19 2021-04-30
11.x fin de vida 2018-10-23 2019-06-01
12.x Mantenimiento LTS Erbio 2019-04-23 2019-10-21 2020-11-301 2022-04-30
13.x fin de vida 2019-10-22 2020-06-01
14.x Mantenimiento LTS Fermio 2020-04-21 2020-10-27 2021-10-30 2023-04-30
16.x LTS activo Galio 2021-04-20 2021-10-26 2022-10-18 2024-04-30
17.x Actual 2021-10-19 2022-04-01 2022-06-01
18.x Actual 2022-04-19 2022-10-25 2023-10-18 2025-04-30

información relacionada