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)

Shadi
la source

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.

Ruslan Isay
la source
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
Faisal HUSSAIN
la source
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.

Joseph Roberts
la source
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
8

apk update && apk add nodejsinstallé le npmbinaire pour moi.

John Delaney
la source
plus
maintenant
1
Upvote.
Ça
1
Discuter si quelque chose fonctionne devrait inclure des versions de choses ...
Eric Swanson
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

Peter
la source
1

npm est associé à nodejs. Dans le cas où vous ne pouvez pas installer node avec apk add nodejs, vous devez d'abord résoudre ce problème. Étape 1 - Le référentiel de communauté a-t-il été ajouté à votre liste / etc / apk / repositories? Sinon, il est très utile de le faire. Plus de détails: https://wiki.alpinelinux.org/wiki/Enable_Community_Repository

Vizmi
la source
3
Pouvez-vous expliquer le vote à la baisse?
vizmi
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

Samuel Dare
la source