Jak zainstalować npm w alpejskim Linuksie

66

Nie mogę więc zainstalować npm w alpejskim Linuksie. Myślałem, że może zrobię coś, apk add npmale najwyraźniej apk search npmnic nie zwraca, nawet po apk update. Eksperymentuję z tym wszystkim z obrazu dokera nginx: alpine, tjdocker run -it nginx:alpine /bin/sh

Edycja 1: Widzę, jak buduje się plik nodejs: alpine dockerfile node, ale nie rozumiem, jak się budujenpm

Edycja 2: teraz, gdy wiem, że npm jest instalowany z nodejs na alpine, i dla wyjaśnienia, na początku nie było to dla mnie oczywiste, że na Ubuntu 14.04 a sudo apt-get install nodejsnadal wymagałoby sudo apt-get install npm(który instaluje pakiety programistyczne np. gcc)

Shadi
źródło

Odpowiedzi:

28

W najnowszych wersjach Alpine (v3.8 +) poprawnym sposobem instalacji nodejs z npm jest:

apk add --update nodejs npm

Jednak npmpakiet zależy od nodejs, więc możesz zrobić:

apk add --update npm

Uwaga: od wersji Alpine 3.8 nie ma pakietu nodejs-npm.

Ruslan Isay
źródło
1
To powinna być zaakceptowana odpowiedź teraz
Omar S.
173

Miałem problem z menedżerem apk.

Pakiet nodejs nie instaluje już NPM (patrz pkgs.alpinelinux.org ) Musisz zainstalować nodejs-npm

apk add --update nodejs nodejs-npm
Faisal HUSSAIN
źródło
Nie rozumiem tego. Npm powinna być podstawową zależnością węzła, np. Instalacja npm @ npm może mieć wpływ na samą wersję węzła, więc nie będą kompatybilne ...
dmi3y
4
To powinna być zaakceptowana odpowiedź z najnowszym obrazem alpejskim. npm nie został zainstalowany dla mnie tylko z nodejs
kevinc
Zgadzam się, zwykle jest to zależność, ale jeśli instalujesz nodejs ręcznie (instalowałem go również z repozytorium „edge”, ponieważ od teraz wersja 6.7 jest przestarzała), musisz zainstalować nodejs-npm osobno Oto co uruchomiłem : apk add nodejs = 6.11.2-r0 nodejs-npm = 6.11.2-r0 --update-cache --repository dl-cdn.alpinelinux.org/alpine/edge/main --allow-niezaufany
Anton Babushkin
5
Pytanie poboczne: chociaż ta odpowiedź działa dobrze, nie mogę znaleźć jej nodejs-npmna pkgs.alpinelinux.org/packages . Jest npmpakiet, który również spełnia swoje zadanie. Czy to jakiś alias?
Tad Lispy,
29

Mogę się mylić, ale myślę, że npmtak naprawdę jest to zależność nodejs.

Nigdy nie widziałem smaku npmsamodzielnego instalowania menedżera pakietów . Zawsze wydaje się, że jest dostarczany z pakietem yum install nodejslub apt-get install nodejs, lub apk add --update nodejs.

Joseph Roberts
źródło
1
Witamy w Super User. Nie mam pojęcia, czy masz rację, ale tylko krótkie informacje zwrotne. Odpowiedzi mają być ostatecznymi rozwiązaniami. Przy odrobinie powtórzenia możesz opublikować komentarz z pomocnym odgadnięciem. W przypadku posta z odpowiedzią najpierw go zbadaj, aby uzyskać pewność, a następnie opublikuj post. Następnie możesz zacytować referencję, która stanowi jeszcze lepszą odpowiedź.
fixer1234
16
nie jest to już akceptowane, ponieważ apk nie instaluje domyślnie npm podczas instalacji nodejs
Panthro
przegłosowano tylko dlatego, że nikt nie udzielił lepszej odpowiedzi
Alexander Mills
1
Wydaje mi się, że jest to „apk add - update nodejs-npm” dla Alpine 3.6+
Ali Cheaito
8

apk update && apk add nodejszainstalowałem npmdla mnie plik binarny.

John Delaney
źródło
już nie ....
Panthro,
1
Pozytywne. Nadal działa
bholagabbar
1
Spór, czy coś działa, powinien obejmować wersje rzeczy ...
Eric Swanson
4

Problem tutaj jest niedawny i jest spowodowany zmianami w repozytoriach pakietów Alpine między v3.5 a v3.6 lub edge.

W v3.5 nodejszawarte npm W v3.6 nodesjsnie zawiera npm i nodejs-npmistnieje nowy pakiet.

Zobacz tutaj dla pakietów Alpine. Aby zobaczyć, którą wersję pakietów wyciągasz, spójrz na zawartość/etc/apk/repositories

Piotr
źródło
0

Właśnie to zrobiłem i mogę potwierdzić, że npm nie jest zależnością node.js (przynajmniej w tej chwili na alpejskim) i musi być zainstalowany osobno

to znaczy apk add --update npm

Samuel Dare
źródło