Como instalar o Node.JS no Amazon Linux

251

Eu vi o artigo sobre o uso do yum para instalar as dependências e a instalação do Node.JS & NPM a partir da fonte. Enquanto isso funciona, eu sinto que o Node.JS e o NPM deveriam estar em um repositório público em algum lugar.

Como posso instalar o Node.JS e o NPM em um comando no AWS Amazon Linux?

Tim Fulmer
fonte

Respostas:

396

Tropecei nisso, foi estranhamente difícil de encontrar novamente mais tarde. Colocando aqui para a posteridade:

sudo yum install nodejs npm --enablerepo=epel

EDIT 3: Em julho de 2016, a EDIT 1 não funciona mais para o nodejs 4 (e a EDIT 2 também). Esta resposta ( https://stackoverflow.com/a/35165401/78935 ) fornece uma verdadeira linha única.

EDIT 1: Se você estiver procurando pelo nodejs 4, tente o repositório de testes EPEL:

sudo yum install nodejs --enablerepo=epel-testing

EDIT 2: Para atualizar do nodejs 0.12 instalado por meio do repositório EPEL usando o comando acima, para o nodejs 4 do repositório de testes EPEL, siga estas etapas:

sudo yum rm nodejs
sudo rm -f /usr/local/bin/node
sudo yum install nodejs --enablerepo=epel-testing

Os pacotes mais recentes colocam os binários do nó /usr/bin, em vez de /usr/local/bin.

E alguns antecedentes:

A opção --enablerepo=epelfaz yumcom que procure os pacotes no repositório EPEL.

O EPEL (Pacotes Extra para Enterprise Linux) é um projeto de repositório de código aberto e gratuito, baseado na comunidade, da equipe do Fedora, que fornece pacotes de software add-on de alta qualidade 100% para distribuição em Linux, incluindo RHEL (Red Hat Enterprise Linux), CentOS e Scientific Linux. O projeto Epel não faz parte do RHEL / Cent OS, mas foi desenvolvido para as principais distribuições de Linux, fornecendo muitos pacotes de software livre como rede, administrador de sistemas, programação, monitoramento e assim por diante. A maioria dos pacotes epel são mantidos pelo repo do Fedora.

Via http://www.tecmint.com/how-to-enable-epel-repository-for-rhel-centos-6-5/

Tim Fulmer
fonte
8
Esta é definitivamente a abordagem mais rápida que eu já vi, mas um aviso pode ser útil - o repositório EPEL não está sincronizado com o nó estável atual e você não pode usar "n" para corrigir isso quando instalado. caminho (pelo menos, não sem algum tipo de mágica que está além de mim). A abordagem tediosa do git clone / make install é a única maneira que encontrei para garantir uma instalação consistente e atual.
Ponto
22
Eu tenho o nó 0.10.36 e o ​​npm 1.3.6 fora disso. Estes estão muito desatualizados.
voltrevo #
4
@Semicolon, você pode contornar isso instalando apenas npm, then sudo npm install -g ne / sudo n v0.12ou qualquer outra versão que você quiser.
unboundev
4
n atualize conforme o esperado, mas não atualiza o link do nó corretamente. Você terá que executar o comando extra:sudo ln -sf /usr/local/n/versions/node/<VERSION>/bin/node /usr/bin/node
Masadow 25/11
4
esta resposta não funcionou, pois sudo yum install nodejs --enablerepo=epel-testingretorna o erro: "Nenhum pacote nodejs disponível." enquanto sudo yum install nodejs --enablerepo=epelsó deu versões muito antigas ...
goredwards 11/05
224

Como outros, a resposta aceita também me deu uma versão desatualizada.

Aqui está outra maneira de fazer isso que funciona muito bem:

$ curl --silent --location https://rpm.nodesource.com/setup_12.x | bash -
$ yum -y install nodejs

Você também pode substituir o 12.x por outra versão, como 10.x, 8.x, etc.

Você pode ver todas as versões disponíveis na página do NodeSource Github e extraí - las também, se desejar.

Nota: pode ser necessário executar usando sudodependendo do seu ambiente.

Matthew Herbst
fonte
4
Era isso que eu precisava usar no AWS Elastic Beanstalk para obter uma versão mais recente do que a já instalada.
21816 Jon Burgess
1
Obras simplesmente perfeito, enquanto eu preciso executar npm installpara package.json,
Chetabahana
32
Eu precisava para executar este comcurl --silent --location https://rpm.nodesource.com/setup_4.x | sudo bash -
user465342
16
Se você receber permissão negada, precisará adicionar um pouco de sudo. curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -esudo yum -y install nodejs
sampoh 20/04
1
Se você quer instalar Node.js 8.x, deviam executarcurl --silent --location https://rpm.nodesource.com/setup_8.x | bash -
Argun
64

A resposta aceita me deu o nó 0.10.36 e o ​​npm 1.3.6, que estão muito desatualizados. Peguei o tarball mais recente do linux-x64 na página de downloads do nodejs e não foi muito difícil de instalar: https://nodejs.org/dist/latest/ .

# start in a directory where you like to install things for the current user
(For noobs : it downloads node package as node.tgz file in your directlry)
curl (paste the link to the one you want from the downloads page) >node.tgz

Agora descompacte o alcatrão que você acabou de baixar -

tar xzf node.tgz

Execute este comando e adicione-o também ao seu .bashrc:

export PATH="$PATH:(your install dir)/(node dir)/bin"

(exemplo: export PATH = "$ PATH: /home/ec2-user/mydirectory/node/node4.5.0-linux-x64/bin")

E atualize npm(apenas uma vez, não adicione a .bashrc):

npm install -g npm

Observe que -glá, que significa global, realmente significa global para a instância npm, que é a instância que acabamos de instalar e é limitada ao usuário atual. Isso se aplicará a todos os pacotes que o npm instala 'globalmente'.

voltrevo
fonte
4
Esta é realmente a melhor resposta, como você obter exatamente a versão que você deseja
Mariusz
1
Gostaria de ter lido essa resposta primeiro - essa deve ser a resposta aceita, porque você pode escolher qual versão deseja instalar. Agradeço a @voltrevo #
Mike W
2
@ voltrevo obrigado pela resposta. Sim, existem outras maneiras de instalar o nó no Linux. A resposta aceita é de uma linha, que por acaso se conecta ao sistema de pacotes YUM para atualizações automatizadas e gerenciadas. Os pacotes nos repositórios YUM tendem a ser um pouco mais antigos e também são um pouco melhor testados com implantações mais amplas. Pessoalmente, recomendo deixar os melhores e mais recentes para ambientes de desenvolvimento local e usar algo mais parecido com a resposta aceita para ambientes de produção. Felicidades!
Tim Fulmer
para versões do centos velhos este é o melhor caminho a percorrer
user1336321
O erro após a execução do nó -v agora é: 'não é possível executar o arquivo binário'. Alguma ideia?
21416 JosFabre
28

O procedimento que funcionou para mim (seguindo estas instruções bastante antigas com algumas atualizações):

  • verifique se o git está instalado git --versionou instale-o via:
    sudo yum install git
  • instale o gcc e o openssl:
    sudo yum install gcc-c++ make
    sudo yum install openssl-devel
  • clone o repositório git em um diretório chamado node(que você pode remover posteriormente):
    git clone https://github.com/nodejs/node.git
  • decida qual versão do nó você deseja em https://github.com/nodejs/node/releases
  • vá para o diretório do nó recém-criado e instale o nó
    cd node
    git checkout v6.1.0- coloque a versão desejada após ov
    ./configure
    make
    sudo make install
  • testar se o nó está instalado / funcionando com um node --versionou simplesmente node(nó de saída via process.exit()ou ^Cx 2 ou ^C+ exit)
  • verifique a versão do npm: npm --versione atualize, se necessário, viasudo npm install -g npm
  • Opcional: remova o nodediretório comrm -r node

Notas:

  1. A resposta aceita não funcionou, pois sudo yum install nodejs --enablerepo=epel-testingretorna o erro: No package nodejs available.
    ... e sudo yum install nodejs --enablerepo=epel(ou seja, sem -testing) deu apenas versões muito antigas.
  2. Se você já possui uma versão antiga do nó instalada, pode removê-la com:
    sudo npm uninstall npm -g ... como o npm pode desinstalar-se
    sudo yum erase nodejs
    sudo rm -f /usr/local/bin/node
    ( sudo yum rm nodejsa resposta aceita não funcionará, pois rmnão é um comando válido do yum, consulte yum --help)
  3. É possível clonar o repositório de nó via em git clone git://github.com/nodejs/node.gitvez de, git clone https://github.com/nodejs/node.gitmas você pode obter vários erros (veja aqui ).
  4. Se você já possui um /nodedir de uma instalação anterior, remova-o antes de usar o comando git clone (ou haverá um conflito):
    rm -r node
  5. Se você tiver problemas com algum tipo de sudo npm...comando sudo: npm: command not founde / ou tiver problemas de permissão na instalação de pacotes de nós sem o sudo, edite sudo nano /etc/sudoerse inclua :/usr/local/binno final da linha Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/binpara que leiaDefaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
goredwards
fonte
3
@ Gio muitas outras respostas para escolher, se esta não lhe agradar ;-) ... 'em um comando' não era a parte mais importante da pergunta IMHO.
goredwards
Isso é muito útil depois que cometi um erro com a resposta de aceitação. Obrigado
Daron Tancharoen
@talentedandrew o etc/sudoersarquivo controla quem pode executar quais comandos e quais usuários em quais máquinas - mas apenas executará / encontrará / procurará comandos que estão nos diretórios listados em seu secure_pathNó e devem ser instalados /usr/local/bine, se houver, o sudo deve encontrá-lo - consulte stackoverflow .com / a / 31734090/3092596 Se o sudo não o encontrar, esse caminho precisará ser adicionado ao sudo secure_path- veja também: superuser.com/a/927599/404543
goredwards
Gostaria de acrescentar que talvez você precise corrigir seus links simbólicos após a instalação usando este método: sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/lib/node /usr/lib/node sudo ln -s /usr/local/bin/npm /usr/bin/npm sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf
BuffMcBigHuge 25/17/17
23

Instalação simples com NVM ...

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
. ~/.nvm/nvm.sh
nvm install node

Para instalar uma determinada versão (como 12.16.3) do Nó, altere a última linha para

nvm install 12.16.3

Para obter mais informações sobre como usar o NVM, visite os documentos: https://github.com/nvm-sh/nvm

fuzzysearch
fonte
1
Isso funciona totalmente. Leva menos tempo do que a resposta @goredwards também. Tentei em uma AMI otimizada do Amazon ECS.
Jayant Bhawal
3
A resposta aceita e todos os EDITs 1-3 não funcionaram para mim, mas funcionou. Obrigado!
precisa saber é
1
limpo e compacto.
Stephen Tetreault
1
simples e impressionante
Abhinav
2
Essa deve ser a resposta. É o melhor de longe, a menos que alguém queira construir a partir da fonte.
21417 Kirkland
19

Para a versão v4 LTS, use:

curl --silent --location https://rpm.nodesource.com/setup_4.x | bash -
yum -y install nodejs

Para o Node.js v6, use:

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

Eu também tive alguns problemas ao tentar instalar complementos nativos no Amazon Linux. Se você quiser fazer isso, também deve instalar ferramentas de construção:

yum install gcc-c++ make
Birnbaum
fonte
Esta é uma resposta fantástica. Já não leva mais 20 minutos para instalar o Node.
David Webber
se você executar um aplicativo php com algum front end compilado npm no beanstalk elástico, poderá usar isso. isso é parte do meu arquivo install.config que fez o trabalho - gist.github.com/marekjalovec/1ccee0c2254e65fc5d82eb35c7da82ae
Marek Jalovec
14

Acabei de me deparar com isso. Tentei algumas das respostas mais populares, mas no final, o que funcionou para mim foi o guia de configuração rápida da Amazon.

Tutorial: Configurando o Node.js em uma instância do Amazon EC2

A essência do tutorial é:

  1. Verifique se você está com ssh na instância.
  2. Grv nvm: curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
  3. Ativo . ~/.nvm/nvm.sh
  4. Instale o nó usando o nvm nvm install 4.4.5(NOTA: você pode escolher uma versão diferente. Verifique primeiro as versões remotas executando $ nvm ls-remote)
  5. Por fim, teste se você instalou o nó Node corretamente executando $ node -e "console.log('Running Node.js' + process.version)"

Espero que isso ajude a próxima pessoa.

troxwalt
fonte
Você pode explicar o conteúdo desse link. Uma boa resposta usa apenas um link como referência, não o tópico principal da resposta.
BusyProgrammer
6

Parece que ninguém está mencionando isso. No Amazon Linux 2 , a maneira oficial de carregar o EPEL é:

  • sudo amazon-linux-extras install epel

... então você pode:

  • sudo yum install nodejs

     

Consulte Biblioteca de extras (Amazon Linux 2)

theaws.blog
fonte
bem, esta parece ser a melhor resposta!
estiramento
@ Stretch Na verdade não. Ele instala o nó 6. Muito antigo.
GabrielBB 18/02
5

Eu tinha o Node.js 6.x instalado e queria instalar o Node.js 8.x.

Aqui estão os comandos que usei (extraídos do site do Nodejs com algumas etapas extras para manipular os dados em cache do yum):

  1. sudo yum remove nodejs: Desinstalar o Node.js 6.x (não sei se isso foi necessário ou não)
  2. curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
  3. sudo yum clean all
  4. sudo yum makecache: Regenere o cache de metadados (isso não estava nos documentos, mas o yum continuou tentando instalar o Node.jx 6.x, sem êxito, até que eu emiti esses dois últimos comandos)
  5. sudo yum install nodejs: Instale o Node.js 8.x
Brad W
fonte
3

sudo yum install nodejs npm --enablerepo=epeltrabalha para Amazon Linux AMI. curl --silent --location https://rpm.nodesource.com/setup_6.x | bash - yum -y install nodejs trabalha para RedHat.

Xiao Peng - ZenUML.com
fonte
2

A solução mais fácil é essa (faça isso como root)

sudo su root
cd /etc
mkdir node
yum install wget
wget https://nodejs.org/dist/v9.0.0/node-v9.0.0-linux-x64.tar.gz
tar -xvf node-v9.0.0-linux-x64.tar.gz
cd node-v9.0.0-linux-x64/bin
./node -v
ln -s /etc/node-v9.0.0-linux-x64/bin/node node

insira a descrição da imagem aqui

grepit
fonte
Obrigado, ajudou
arupjbasu 22/11/19
0

Conforme mencionado na documentação oficial, simples abaixo de 2 etapas -

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
Vivek Chaturvedi
fonte
0

Para aqueles que desejam que a resposta aceita seja executada no Ansible sem pesquisas adicionais, postarei a tarefa aqui para conveniência e referência futura.

Recomendação de resposta aceita: https://stackoverflow.com/a/35165401/78935

Tarefa equivalente equivalente

tasks:
  - name: Setting up the NodeJS yum repository
    shell: curl --silent --location https://rpm.nodesource.com/setup_10.x | bash -
    args:
      warn: no
  # ...
Andrei Cioara
fonte
0

Você pode atualizar / instalar o nó reinstalando o pacote instalado na versão atual, o que pode nos salvar de muitos erros enquanto faz a atualização.

Isso é feito pelo nvm com o comando abaixo. Aqui, atualizei a versão do meu nó para 8 e reinstalei todos os pacotes disponíveis para a v8 também!

nvm i v8 --reinstall-packages-from=default

Também funciona na instância do AWS Linux.

Soundharya AM
fonte