Cara menginstal npm di linux alpine

66

Jadi saya tidak bisa menginstal npm di linux alpine. Saya pikir mungkin saya bisa melakukan apk add npmtetapi ternyata apk search npmtidak mengembalikan apa pun, bahkan setelah a apk update. Saya bereksperimen dengan semua ini dari gambar nginx: alpine docker, yaitudocker run -it nginx:alpine /bin/sh

Sunting 1: Saya bisa melihat bagaimana nodejs: alpine dockerfile membangun node, tapi saya tidak mengerti bagaimana itu membangunnpm

Sunting 2: sekarang saya tahu bahwa npm terinstal dengan nodejs pada alpine, dan hanya untuk klarifikasi, alasan ini pada awalnya tidak jelas bagi saya adalah bahwa pada ubuntu 14.04 a sudo apt-get install nodejsmasih memerlukan a sudo apt-get install npm(yang menginstal paket pengembangan misalnya gcc)

shadi
sumber

Jawaban:

29

Untuk versi terbaru Alpine (v3.8 +) cara yang benar untuk menginstal nodejs dengan npm adalah:

apk add --update nodejs npm

Namun, npmpaket tergantung pada nodejs, sehingga Anda dapat melakukan:

apk add --update npm

Catatan: karena Alpine 3.8 tidak ada paket nodejs-npm.

Ruslan Isay
sumber
1
Ini seharusnya jawaban yang diterima sekarang
Omar S.
173

Saya memiliki masalah dengan pengelola apk.

Paket nodejs tidak lagi menginstal NPM (lihat pkgs.alpinelinux.org ) Anda harus menginstal nodejs-npm

apk add --update nodejs nodejs-npm
Faisal HUSSAIN
sumber
Saya tidak mengerti. Npm harus menjadi inti ketergantungan node, npm instal npm @ latest mungkin dipengaruhi oleh versi node itu sendiri sehingga mereka tidak akan kompatibel ...
dmi3y
4
Ini harus menjadi jawaban yang diterima dengan gambar alpine terbaru. NPM tidak diinstal untuk saya dengan hanya nodejs
kevinc
Setuju, ini biasanya ketergantungan, tetapi jika Anda menginstal nodejs secara manual (saya menginstalnya dari repo 'edge' juga karena seperti yang sekarang 6,7 sudah ditinggalkan) maka Anda perlu menginstal nodejs-npm secara terpisah Inilah yang saya jalankan : apk tambahkan nodejs = 6.11.2-r0 nodejs-npm = 6.11.2-r0 --update-cache --repository dl-cdn.alpinelinux.org/alpine/edge/main --allow-unrusted
Anton Babushkin
5
Pertanyaan sampingan: sementara jawaban ini berfungsi dengan baik, saya sepertinya tidak dapat menemukannya nodejs-npmdi pkgs.alpinelinux.org/packages . Ada npmpaket yang juga berfungsi. Apakah itu semacam alias?
Tad Lispy
29

Saya bisa saja salah, tetapi saya pikir npmsebenarnya adalah ketergantungan nodejs.

Saya belum pernah melihat rasa instal paket manajer npmsaja. Tampaknya selalu dikemas dengan yum install nodejs, atau apt-get install nodejs, atau apk add --update nodejs.

Joseph Roberts
sumber
1
Selamat datang di Pengguna Super. Saya tidak tahu apakah Anda benar, tetapi hanya umpan balik cepat. Jawaban dimaksudkan sebagai solusi definitif. Dengan sedikit rep, Anda dapat memposting komentar dengan tebakan yang membantu. Untuk posting jawaban, teliti terlebih dahulu, jadi Anda yakin dengan informasinya, lalu posting. Dan Anda kemudian dapat mengutip referensi, yang membuat jawaban yang lebih baik.
fixer1234
16
ini tidak lagi diterima, karena apk tidak menginstal npm secara default ketika menginstal nodejs
Panthro
terbalik hanya karena tidak ada yang memberikan jawaban yang lebih baik
Alexander Mills
1
Saya percaya ini adalah 'apk tambahkan --update nodejs-npm' untuk Alpine 3.6+
Ali Cheaito
8

apk update && apk add nodejsmenginstal npmbiner untuk saya.

John Delaney
sumber
tidak lagi ....
Panthro
1
Terpilih. Masih berfungsi
bholagabbar
1
Membantah jika sesuatu berhasil harus mencakup versi hal-hal ...
Eric Swanson
4

Masalahnya di sini adalah yang baru dan karena perubahan dalam repositori paket Alpine antara v3.5 dan v3.6 atau edge.

Dalam v3.5 nodejstermasuk npm Dalam v3.6 nodesjstidak termasuk npm dan nodejs-npmpaket baru ada.

Lihat di sini untuk paket Alpine. Untuk melihat versi paket apa yang Anda tarik dari melihat isi/etc/apk/repositories

Peter
sumber
1

npm datang seiring dengan nodejs. Jika Anda tidak dapat menginstal node dengan apk add nodejs, Anda harus memperbaikinya terlebih dahulu. Langkah 1 - apakah Anda memiliki repo komunitas ditambahkan ke daftar / etc / apk / repositori Anda? Jika tidak, sangat berguna untuk melakukannya. Rincian lebih lanjut: https://wiki.alpinelinux.org/wiki/Enable_Community_Repository

vizmi
sumber
3
Bisakah Anda menjelaskan suara turun?
vizmi
0

Saya baru saja melakukan ini dan dapat mengkonfirmasi bahwa npm bukan ketergantungan node.js (setidaknya sekarang di alpine) dan harus diinstal secara terpisah

yaitu apk add --update npm

Samuel Dare
sumber