Comment installer npm dans linux alpin


57

Je ne peux donc pas installer npm sous linux alpin. Je pensais que je pouvais peut-être faire un apk add npmmais apk search npmne retourne apparemment rien, même après un apk update. J'expérimente tout cela depuis le nginx: alpine docker image, c'est-à-diredocker run -it nginx:alpine /bin/sh

Edit 1: Je peux voir comment est construit le fichier nodejs: alpine dockerfile node, mais je ne comprends pas comment il est construitnpm

Edit 2: maintenant que je sais que npm est installé avec nodejs sur alpine, et juste pour clarification, la raison pour laquelle cela ne m’a pas semblé évident au début, c’est que sur Ubuntu 14.04, il sudo apt-get install nodejsfaudrait toujours un sudo apt-get install npm(qui installe des packages de développement, par exemple gcc)

Réponses:


18

Pour les versions récentes d'Alpine (v3.8 +), la méthode correcte pour installer nodejs avec npm est la suivante:

apk add --update nodejs npm

Cependant, le npmpaquet dépend nodejs, alors vous pouvez faire:

apk add --update npm

Remarque: depuis Alpine 3.8, il n'y a pas de paquet nodejs-npm.


1
Cela devrait être la réponse acceptée maintenant
Omar S.

170

J'ai eu un problème avec le gestionnaire d'apk.

Le paquetage nodejs n’installe plus le NPM (voir pkgs.alpinelinux.org ) Vous devez installer nodejs-npm

apk add --update nodejs nodejs-npm

Je ne comprends pas. Npm devrait être la dépendance principale du nœud, npm install npm @ latest pourrait être impacté par la version du nœud lui-même, de sorte qu'ils ne seraient pas compatibles ...
dmi3y

4
Cela devrait être la réponse acceptée avec la dernière image alpine. npm n'a pas été installé pour moi avec juste nodejs
kevinc le

D'accord, il s'agit normalement d' une dépendance, mais si vous installez nodejs manuellement (je l'installais à partir du référentiel 'edge' également car, à partir de maintenant, 6.7 est obsolète), vous devez installer nodejs-npm séparément. Voici ce que j'ai exécuté. : 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 du

5
Question annexe : bien que cette réponse fonctionne correctement , je ne trouve pas nodejs-npmle mot-clé pkgs.alpinelinux.org/packages . Il y a un npmpaquet qui fait aussi le travail. Est-ce une sorte de pseudonyme?
Tad Lispy

29

Je peux me tromper, mais je pense qu’il npms’agit d’une dépendance de nodejs.

Je n'ai jamais vu un npmseul type d' installation de gestionnaire de paquets . Semble toujours venir emballé avec yum install nodejs, ou apt-get install nodejs, ou apk add --update nodejs.


1
Bienvenue sur Super User. Je ne sais pas si vous avez raison, mais quelques commentaires rapides. Les réponses sont destinées à être des solutions définitives. Avec un peu plus de rep, vous pouvez poster un commentaire avec une supposition utile. Pour un post-réponse, recherchez-le d'abord, pour être sûr de l'information, puis postez-le. Et vous pouvez ensuite citer une référence, ce qui en fait une réponse encore meilleure.
Fix1234

16
cela n'est plus accepté car apk n'installe pas npm par défaut lors de l'installation de nodejs
Panthro

voté juste parce que personne n'a fourni une meilleure réponse
Alexander Mills

1
Je crois que c'est 'apk add --update nodejs-npm' pour Alpine 3.6+
Ali Cheaito


4

Le problème ici est récent et est dû aux modifications apportées aux référentiels de packages d'Alpine entre la v3.5 et la v3.6 ou le bord.

Dans la v3.5 nodejsincluse, npm In v3.6 nodesjsn'inclut pas npm et le nouveau nodejs-npmpackage existe.

Voir ici pour les forfaits alpins. Pour voir quelle version des paquets vous extrayez de regarder le contenu de/etc/apk/repositories



0

Je viens de le faire et je peux confirmer que npm n'est pas une dépendance de node.js (du moins pour le moment sur alpine) et doit être installé séparément

c'est à dire apk add --update npm

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.