Como instalar o npm no linux alpino

66

Portanto, não consigo instalar o npm no linux alpino. Pensei que talvez pudesse fazer um, apk add npmmas aparentemente apk search npmnão retorna nada, mesmo depois de um apk update. Estou experimentando tudo isso a partir da imagem nginx: docker alpine, ou sejadocker run -it nginx:alpine /bin/sh

Edit 1: Posso ver como o nodejs: alpine dockerfile é construído node, mas não entendo como ele é construídonpm

Edit 2: agora que eu sei que o npm é instalado com o nodejs no alpine, e apenas para esclarecimentos, a razão pela qual isso não ficou evidente a princípio é que no ubuntu 14.04 sudo apt-get install nodejsainda seria necessário um sudo apt-get install npm(que instala pacotes de desenvolvimento, por exemplo gcc)

shadi
fonte

Respostas:

29

Para as versões recentes do Alpine (v3.8 +), a maneira correta de instalar o nodejs com o npm é:

apk add --update nodejs npm

No entanto, o npmpacote depende nodejs, então você pode fazer:

apk add --update npm

Nota: desde o Alpine 3.8, não há pacote nodejs-npm.

Ruslan Isay
fonte
11
Esta deve ser a resposta aceita agora
Omar S.
173

Eu tive um problema com o gerenciador de apk.

O pacote nodejs não está mais instalando o NPM (consulte pkgs.alpinelinux.org ) É necessário instalar o nodejs-npm

apk add --update nodejs nodejs-npm
Faisal HUSSAIN
fonte
Eu não entendo isso. NPM deve ser a dependência núcleo do nó, npm instalar npm @ mais recente pode ser afetado pela própria versão de nó de modo que não seria compatível ...
dmi3y
4
Essa deve ser a resposta aceita com a imagem alpina mais recente. npm não foi instalado para mim com apenas nodejs
kevinc
Concordo, isso normalmente é uma dependência, mas se você estiver instalando o nodejs manualmente (eu estava instalando-o também do repositório 'edge' porque, a partir de agora, o 6.7 está obsoleto), será necessário instalar o nodejs-npm separadamente. : apk add nodejs = 6.11.2-r0 nodejs-npm = 6.11.2-r0 --update-cache - repositório dl-cdn.alpinelinux.org/alpine/edge/main --owow-não confiável
Anton Babushkin
5
Pergunta secundária : embora esta resposta funcione perfeitamente, não consigo encontrar nodejs-npmem pkgs.alpinelinux.org/packages . Há um npmpacote que também faz o trabalho. É algum tipo de apelido?
Tad lispy
29

Eu posso estar errado, mas acho que npmé realmente uma dependência de nodejs.

Eu nunca vi nenhum sabor do gerenciador de pacotes instalado npmsozinho. Sempre parece vir embalado com yum install nodejs, ou apt-get install nodejs, ou apk add --update nodejs.

Joseph Roberts
fonte
11
Bem-vindo ao superusuário. Não faço ideia se você está certo, mas apenas um feedback rápido. As respostas pretendem ser soluções definitivas. Com um pouco mais de rep, você pode postar um comentário com um palpite útil. Para uma resposta, pesquise primeiro, para ter certeza das informações e, em seguida, poste. E você pode citar uma referência, o que dá uma resposta ainda melhor.
fixer1234
16
isso não é mais aceita, como apk não instala npm por padrão ao instalar nodejs
Panthro
upvoted só porque ninguém forneceu uma resposta melhor
Alexander Mills
11
Eu acredito que é 'apk add --update nodejs-npm' para Alpine 3.6+
Ali Cheaito
8

apk update && apk add nodejsinstalei o npmbinário para mim.

John Delaney
fonte
não mais ....
Panthro
11
Votado. Ainda funciona
bholagabbar 13/09/17
11
Disputando se algo funciona deve incluir versões das coisas ...
Eric Swanson
4

O problema aqui é recente e é devido a alterações nos repositórios de pacotes da Alpine entre v3.5 e v3.6 ou edge.

Na v3.5 nodejsincluída npm Na v3.6 nodesjsnão inclui npm e o novo nodejs-npmpacote existe.

Veja aqui os pacotes Alpine. Para ver qual versão dos pacotes você está obtendo, consulte o conteúdo de/etc/apk/repositories

Pedro
fonte
1

O npm vem de mãos dadas com o nodejs. No caso de você não poder instalar o nó com o apk add nodejs, é necessário corrigir isso primeiro. Etapa 1 - você adicionou o repositório da comunidade à sua lista / etc / apk / repositórios? Caso contrário, é muito útil fazê-lo. Mais detalhes: https://wiki.alpinelinux.org/wiki/Enable_Community_Repository

vizmi
fonte
3
Você pode explicar o voto negativo?
precisa saber é
0

Acabei de fazer isso e posso confirmar que o npm não é uma dependência do node.js (pelo menos agora no alpine) e deve ser instalado separadamente

ie apk add --update npm

Samuel Dare
fonte