
Me encontré con un problema hoy cuando decidí usarlo npm update -g
en 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 npm
no 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-username
en el comando anterior con su propio nombre de usuario. Luego ejecute npm -v
para 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 yarn
y 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 nodejs
paquete contiene el nodejs
binario y el archivo npm
, por lo que no es necesario realizar la instalación npm
por separado. Sin embargo, para que algunos npm
paquetes funcionen (como aquellos que requieren compilación desde el código fuente), deberá instalar el build-essential
paquete:
sudo apt-get install build-essential
Plan LTS
Las nuevas versiones más importantes de Node.js se eliminan master
cada 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 |