Cómo instalar npm en alpine linux

66

Así que no puedo instalar npm en alpine linux. Pensé que tal vez solo podría hacer un apk add npmpero aparentemente apk search npmno devuelve nada, incluso después de un apk update. Estoy experimentando con todo esto desde la imagen nginx: alpine docker, es decirdocker run -it nginx:alpine /bin/sh

Edición 1: puedo ver cómo se construye el nodejs: alpine dockerfile node, pero no entiendo cómo se construyenpm

Edición 2: ahora que sé que npm se instala con nodejs en alpine, y solo para aclarar, la razón por la que esto no me resultó evidente al principio es que en ubuntu 14.04 a sudo apt-get install nodejstodavía requeriría un sudo apt-get install npm(que instala paquetes de desarrollo, por ejemplo gcc)

Shadi
fuente

Respuestas:

30

Para las versiones recientes de Alpine (v3.8 +), la forma correcta de instalar nodejs con npm es:

apk add --update nodejs npm

Sin embargo, el npmpaquete depende nodejs, por lo que puede hacer:

apk add --update npm

Nota: desde Alpine 3.8 no hay un paquete nodejs-npm.

Ruslan Isay
fuente
1
Esta debería ser la respuesta aceptada ahora
Omar S.
173

Tuve un problema con el administrador de apk.

El paquete nodejs ya no está instalando NPM (consulte pkgs.alpinelinux.org ) Debe instalar nodejs-npm

apk add --update nodejs nodejs-npm
Faisal HUSSAIN
fuente
No lo entiendo. NPM debería ser la dependencia central del nodo, NPM instalar NPM @ últimas podrían ser impactados por el propio nodo de la versión por lo que no serían compatibles ...
dmi3y
44
Esta debería ser la respuesta aceptada con la última imagen alpina. NPM no se ha instalado para mí con sólo nodejs
kevinc
De acuerdo, esto normalmente es una dependencia, pero si está instalando nodejs manualmente (también lo estaba instalando desde el repositorio 'edge' porque a partir de ahora 6.7 está en desuso), entonces necesita instalar nodejs-npm por separado Esto es lo que ejecuté : apk add nodejs = 6.11.2-r0 nodejs-npm = 6.11.2-r0 --update-cache --repository dl-cdn.alpinelinux.org/alpine/edge/main --allow-untrusted
Anton Babushkin
55
Pregunta secundaria: si bien esta respuesta funciona bien, parece que no puedo encontrarla nodejs-npmen pkgs.alpinelinux.org/packages . Hay un npmpaquete que también hace el trabajo. ¿Es algún tipo de alias?
Tad Lispy
29

Podría estar equivocado, pero creo que en npmrealidad es una dependencia de nodejs.

Nunca he visto ningún sabor de la instalación del administrador de paquetes npmsolo. Siempre parece venir empaquetado con yum install nodejs, o apt-get install nodejs, o apk add --update nodejs.

Joseph Roberts
fuente
1
Bienvenido a Super User. No tengo idea de si tienes razón, pero solo algunos comentarios rápidos. Las respuestas están destinadas a ser soluciones definitivas. Con un poco más de representante, puede publicar un comentario con una suposición útil. Para una publicación de respuesta, investigue primero, para estar seguro de la información, luego publique. Y luego puedes citar una referencia, lo que hace una respuesta aún mejor.
Fixer1234
16
esto ya no se acepta, ya que apk no instala npm de forma predeterminada al instalar nodejs
Panthro
votó porque nadie dio una mejor respuesta
Alexander Mills
1
Creo que es 'apk add --update nodejs-npm' para Alpine 3.6+
Ali Cheaito
8

apk update && apk add nodejsinstaló el npmbinario para mí.

John Delaney
fuente
ya no ....
Panthro
1
Votado Todavía funciona
bholagabbar
1
Discutir si algo funciona debería incluir versiones de las cosas ...
Eric Swanson
4

El problema aquí es reciente y se debe a cambios en los repositorios de paquetes de Alpine entre v3.5 y v3.6 o edge.

En v3.5 nodejsincluido npm En v3.6 nodesjsno incluye npm y nodejs-npmexiste el nuevo paquete.

Vea aquí los paquetes alpinos. Para ver qué versión de paquetes está extrayendo, consulte el contenido de/etc/apk/repositories

Peter
fuente
0

Acabo de tener que hacer esto y puedo confirmar que npm no es una dependencia de node.js (al menos en este momento en alpine) y debe instalarse por separado

es decir apk add --update npm

Samuel Dare
fuente