Categorias
Desenvolvimento/Programação Linux Node.JS Terminal Tutorial Ubuntu

Como instalar o Node JS corretamente no Ubuntu 20.04 LTS e em outras distros derivadas

Quem nunca passou pelo problema de baixar o instalador do Node JS no site oficial, instalou e deu problemas de autorização com o Node Modules, e não conseguiu fazer nada? Talvez você tenha até se irritado e voltado para o Windows por causa disso.

Bem, o ideal seria você conseguir instalar o Node JS pela aplicação disponibilizada por eles mesmos, mas:

“O mundo não é essa janta toda.”
– Nil Agra

Isso acabou obrigando diversos desenvolvedores a darem “o seu jeitinho”, e criaram diversas ferramentas muito boas, não apenas para instalar o Node JS, mas como também, para gerenciá-lo. Eu conheço pelos menos 2 que fazem isso muito bem, o ASDF e o NVM. Sendo que, neste post, não apenas por comodidade e facilidade, mas visando ensinar os novatos em Linux e Node JS, eu vou falar do NVM, OK?

O que é o NVM?

Bom, galera! Resumidamente, o NVM é um gerenciador de pacotes do Node JS, onde você consegue instalar se forma prática e segura todas as versões do Node JS (eu disse todas!). E não somente isso, você pode alterar entre as versões do Node JS instaladas na sua máquina quando e como você quiser. Dá até pra automatizar a troca de acordo com o seu projeto, ou seja, abriu um projeto com Node 8, ele muda pro Node 8. Abriu agora um projeto com Node 10, ele altera para o Node 10. É muito top!

Como instalar?

A instalação no Ubuntu pode ocorrer através dos dois links abaixo. Você precisa abrir um terminal, escolher somente uma das formas abaixo (via cURL ou via wGet) copiar e colar a linha de código e executar (Ctrl+C, Ctrl+V e Enter! Seja feliz!).

Via cURL

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
ou Via wGet
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

Você só precisa usar um ou outro. Se você estiver utilizando alguma distribuição que não venha com o cURL instalado por padrão, o que pode ocorrer nas novas distribuições, é só rodar o comando com wGet.

Ao final da instalação, ele vai perguntar se você quer usar o NVM agora (após a instalação). Para fazer isso, você precisa fazer com que o sistema reconheça o NVM rodando o seguinte comando (Ctrl+C, Ctrl+V e Enter!):

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

Mas é bem provável que o NVM não funcione depois de fechar o terminal ou reiniciar o Linux. Então, é necessário incluir este comando no perfil do seu terminal.

Para isso, abra o editor de sua preferência (não precisa ser em modo root usando o sudo), e edite um destes arquivos: ~/.bash_profile, ~/.zshrc, ~/.profile, ou ~/.bashrc.

Geralmente é o ~/.bashrc para terminais padrões, ou o ~/.zshrc caso você tenha instalado o ZSH.

Como eu instalei o ZSH, eu vou usar o seguinte comando:

nano ~/.zshrc

Vá até o final do arquivo, pule uma linha e insira o seguinte:

# NVM
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion

Sim! É o mesmo código que você usou lá em cima, mas aquele era para você usar naquele momento. Assim que reiniciasse o terminal, ele deixaria de funcionar. Já este, é para ficar configurado para sempre (ou até você formatar essa bagaça aí… kkk).

Pronto! Feito isto, agora vamos instalar o Node JS. Você pode instalar de diversas formas, mas como sempre, eu vou pelo mais simples. As duas formas básicas são para instalar a versão LTS, que é a versão estável do Node JS, e a outra é para instalar a última versão (ainda em desenvolvimento, por isso instável).

Para instalar a versão estável (LTS):

nvm install --lts

Para instalar a última versão (em desenvolvimento/instável):

nvm install node

Tá, mas qual é a diferença? Vai dar pau se eu instalar a última versão?

Primeiro, vamos falar da diferença entre as versões. Desde a primeira versão do Node JS até aqui, inúmeras melhorias foram adicionadas ao projeto, e continuam sendo aprimoradas até hoje, por isso saem novas versões.

A versão estável, é uma versão que já foi testada inúmeras vezes, houveram várias correções, e as chances de “bugar” são bem poucas.

A versão em desenvolvimento possui novas melhorias, que não tem na versão estável, por isso é um código mais atualizado, com mais componentes, com mais features, com mais tudo, porém, menos testado e com mais chances de ter bugs/falhas ainda não descobertos.

Quer um conselho?

Se você é novo em Node JS, prefira instalar sempre a versão estável (LTS).

Se estiver fazendo algum curso, dificilmente você vai ver alguém utilizando as versões em desenvolvimento (as últimas versões). Até porque, por mais que eles iniciem o curso com uma versão em desenvolvimento, até acabarem de gravar/editar o curso, ela já deve ter se tornado uma versão estável.

Mesmo que você entre em uma empresa hoje, geralmente você vai entrar em um projeto que já existe, com código antigo e dificilmente irão iniciar um projeto com a última versão. Em alguns casos, eles preferem até usar alguma versão anterior a última versão estável disponível no momento, para maior segurança e estabilidade no desenvolvimento.

Então, vá com calma!

Como que eu sei que tá tudo funcionando?

Pra testar o NVM, a gente pode rodar o comando nvm no terminal, ou checar a versão do NVM com o seguinte comando:

nvm --version

O meu retornou o seguinte:

nvm --version
0.35.3

Pra testar o Node JS, rode o comando, e ele vai retornar a versão logo abaixo:

node -v 
v12.18.3

Ele também vem com o NPM. Para testar o NPM, rode o seguinte comando:

npm -v 
6.14.6

Daqui pra frente, as versões que ele irá retornar (NVM, Node e NPM) poderão ser as mesmas, ou superiores, mas isso não invalida este material. Enquanto o NVM existir, esses serão os comandos básicos de instalação do NVM, Node e NPM.

Finalizando

Bem, por enquanto é só. Tudo instalado da maneira certa e tudo funcionando sem problemas.

Dúvidas? Sugestões? Fique a vontade para comentar abaixo. Ficarei feliz em ouvir você.

Por Raphael Cabral

Carioca, cristão, casado, desenvolvedor web, apaixonado por música e tecnologia.

Deixe um comentário

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.