Как установить npm в Alpine Linux


66

Поэтому я не могу установить npm в Alpine Linux. Я думал, что, возможно, я могу просто сделать, apk add npmно, по-видимому, apk search npmничего не возвращает, даже после apk update. Я экспериментирую со всем этим из образа докера nginx: alpine, т.е.docker run -it nginx:alpine /bin/sh

Редактировать 1: я могу видеть, как строит nodejs: alpine dockerfile node, но я не понимаю, как он собираетсяnpm

Редактирование 2: теперь, когда я знаю, что npm устанавливается с nodejs на alpine, и просто для пояснения, причина, по которой мне это сначала не было очевидно, заключается в том, что в ubuntu 14.04 a sudo apt-get install nodejsвсе еще требуется sudo apt-get install npm(например, для установки пакетов разработки gcc)

Ответы:


30

Для последних версий Alpine (v3.8 +) правильный способ установки nodejs с помощью npm:

apk add --update nodejs npm

Однако от npmпакета зависит nodejs, так что вы можете сделать:

apk add --update npm

Примечание: начиная с Alpine 3.8 нет пакета nodejs-npm.


1
Это должен быть принятый ответ сейчас
Омар С.

173

У меня была проблема с менеджером apk.

Пакет nodejs больше не устанавливает NPM (см. Pkgs.alpinelinux.org ). Вам необходимо установить nodejs-npm.

apk add --update nodejs nodejs-npm

Я не понимаю этого. Npm должен быть основной зависимостью узла, npm install npm @ latest может зависеть от самой версии узла, поэтому они не будут совместимы ...
dmi3y

4
Это должен быть принятый ответ с последним альпийским изображением. npm не был установлен для меня только с nodejs
kevinc

Согласитесь, это обычно зависимость, но если вы устанавливаете nodejs вручную (я устанавливал его также из репозитория 'edge', потому что на данный момент не рекомендуется использовать 6.7), то вам нужно установить nodejs-npm отдельно. Вот что я запустил : 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
Антон Бабушкин

5
Дополнительный вопрос: хотя этот ответ работает просто отлично, я не могу найти его nodejs-npmна pkgs.alpinelinux.org/packages . Есть npmпакет, который также делает работу. Это какой-то псевдоним?
Тэд Лиспи

29

Я могу ошибаться, но я думаю, что npmэто на самом деле зависимость nodejs.

Я никогда не видел ни одного варианта установки менеджера пакетов в npmодиночку. Кажется, всегда приходит в комплекте с yum install nodejs, или apt-get install nodejs, или apk add --update nodejs.


1
Добро пожаловать в Супер пользователя. Я понятия не имею, правы ли вы, но просто несколько быстрых отзывов. Ответы предназначены для окончательного решения. С немного большим количеством представителей, вы можете оставить комментарий с полезным предположением. Что касается поста с ответом, сначала изучите его, чтобы быть уверенным в информации, а затем опубликовать. И тогда вы можете привести ссылку, которая дает еще лучший ответ.
fixer1234

16
это больше не принимается, так как apk не устанавливает npm по умолчанию при установке nodejs
Panthro

проголосовал только потому, что никто не дал лучшего ответа
Александр Миллс

1
Я считаю, что это 'apk add --update nodejs-npm' для Alpine 3.6+
Али Чеаито


4

Проблема здесь недавняя и связана с изменениями в репозиториях пакетов Alpine между версиями 3.5 и v3.6 или более поздними.

В v3.5 nodejsвключен npm В v3.6 nodesjsне включен npm и новый nodejs-npmпакет существует.

Смотрите здесь для альпийских пакетов. Чтобы увидеть, какую версию пакетов вы извлекаете, посмотрите на содержимое/etc/apk/repositories


1

npm идет рука об руку с nodejs. В случае, если вы не можете установить узел с помощью apk add nodejs, вам сначала нужно это исправить. Шаг 1 - есть ли у вас репозиторий сообщества, добавленный в список / etc / apk / repositories? Если нет, то это очень полезно. Дополнительная информация: https://wiki.alpinelinux.org/wiki/Enable_Community_Repository


3
Можете ли вы объяснить голосование против?
Визми

0

Я только что сделал это и могу подтвердить, что npm не является зависимостью от node.js (по крайней мере, сейчас от alpine) и должен быть установлен отдельно

т.е. apk add --update npm

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.