Як встановити npm в альпійському Linux


66

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

Редагувати 1: Я бачу, як будується файл nodejs: alpine dockerfile node, але я не розумію, як він будуєтьсяnpm

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

Відповіді:


28

Для останніх версій 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 встановити npm @ latest може вплинути на саму версію вузла, щоб вони не були сумісні ...
dmi3y

4
Це має бути прийнятою відповіддю з останнім зображенням альпійців. npm не встановлено для мене лише nodejs
kevinc

Погоджено, це зазвичай залежність, але якщо ви встановлюєте nodejs вручну (я встановлював її також з репорта "край", тому що на сьогоднішній день застаріло 6,7), то вам потрібно встановити nodejs-npm окремо. Ось що я запускав : apk add nodejs = 6.11.2-r0 nodejs-npm = 6.11.2-r0 --update-кеш - репозиторій dl-cdn.alpinelinux.org/alpine/edge/main - дозволити -ненадійний
Антон Бабушкін

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 - оновити nodejs-npm" для Alpine 3.6+
Ali Cheaito


4

Проблема тут є нещодавньою і пов’язана із змінами в сховищах пакетів Alpine між v3.5 та v3.6 або edge.

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

Дивіться тут для альпійських пакетів. Щоб побачити, яку версію пакунків ви тягнете, подивіться на вміст/etc/apk/repositories


1

npm йде рука об руку з nodejs. У випадку, якщо ви не можете встановити вузол за допомогою apk add nodejs, вам потрібно спочатку виправити це. Крок 1 - чи додано спільноту repo до списку / etc / apk / repositories? Якщо ні, то дуже корисно це зробити. Детальніше: https://wiki.alpinelinux.org/wiki/Enable_Community_Repository


3
Чи можете ви пояснити голосування проти?
візьмі

0

Я щойно мав це зробити і можу підтвердити, що npm не є залежністю від node.js (принаймні зараз від альпійського) і його потрібно встановлювати окремо

тобто apk add --update npm

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.