NVM – Instale Múltiplas Versões do Node.js no Linux

Node Version Manager (NVM abreviado) é um simples script bash para gerenciar múltiplas versões ativas do node.js no seu sistema Linux. Permite que você instale várias versões do node.js e visualize todas as versões disponíveis para instalação e todas as versões instaladas no seu sistema.

O Nvm também suporta a execução de uma versão específica do node.js e pode mostrar o caminho para o executável onde foi instalado, e muito mais.

Neste artigo, explicaremos como instalar o Node Version Manager (NVM) para gerenciar múltiplas versões ativas do node.js na sua distribuição Linux.

Instalando o NVM (Gerenciador de Versões do Node) no Linux

Para instalar ou atualizar o nvm na sua distribuição Linux, você pode baixar o script de instalação automática usando as ferramentas de linha de comando curl ou wget conforme mostrado.

# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
OR
# wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

O script de autoinstalação acima clona o repositório nvm em ~/.nvm no seu diretório pessoal e adiciona os comandos de origem necessários aos seus scripts de inicialização do shell, ou seja, ~/.bash_profile, ~/.zshrc, ~/.profile ou ~/.bashrc, dependendo do programa de shell que você está usando, como mostrado na saída a seguir.

Install NVM in Linux
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15916  100 15916    0     0  34227      0 --:--:-- --:--:-- --:--:-- 34301
=> Downloading nvm from git to '/root/.nvm'
=> Cloning into '/root/.nvm'...
remote: Enumerating objects: 359, done.
remote: Counting objects: 100% (359/359), done.
remote: Compressing objects: 100% (305/305), done.
remote: Total 359 (delta 40), reused 168 (delta 28), pack-reused 0
Receiving objects: 100% (359/359), 219.46 KiB | 6.86 MiB/s, done.
Resolving deltas: 100% (40/40), done.
* (HEAD detached at FETCH_HEAD)
  master
=> Compressing and cleaning up git repository

=> Appending nvm source string to /root/.bashrc
=> Appending bash_completion source string to /root/.bashrc
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
...

Uma vez que a instalação estiver completa, feche a janela do terminal atual e abra uma nova ou simplesmente carregue o arquivo de perfil do seu shell para carregar o nvm. Por exemplo, se estiver usando o bash, execute o seguinte comando:

$ source ~/.bashrc
OR
$ source ~/.profile

Em seguida, verifique se o nvm foi instalado no seu sistema usando o seguinte comando.

# command -v nvm

nvm

Ele mostrará a saída como ‘nvm‘ se a instalação foi bem-sucedida.

Instalar Múltiplas Versões do Node.js Usando NVM

Agora é hora de aprender como usar o Gerenciador de Versões do Node no Linux. Para baixar, compilar e instalar a versão mais recente do node, execute o seguinte comando:

# nvm install node 

Observe que no comando acima, “node” é um alias para a versão mais recente.

Install Latest Node Version in Linux
Downloading and installing node v20.0.0...
Downloading https://nodejs.org/dist/v20.0.0/node-v20.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v20.0.0 (npm v9.6.4)
Creating default alias: default -> node (-> v20.0.0)

Para instalar uma versão específica do “node”, liste primeiro as versões disponíveis do node e depois instale a versão conforme mostrado.

# nvm ls-remote
# nvm install 19.0.0  
Install Specific Node Version in Linux
Downloading and installing node v19.0.0...
Downloading https://nodejs.org/dist/v19.0.0/node-v19.0.0-linux-x64.tar.xz...
########################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
Now using node v19.0.0 (npm v8.19.2)

Uma vez instalada uma versão do Node.js usando o nvm, o sistema deve agora apontar para as versões do Node.js e do npm sob o nvm. Você pode verificar a localização do binário/comando do node e do npm sendo usados executando o comando which da seguinte forma:

# which node
/root/.nvm/versions/node/v20.0.0/bin/node

# which npm
/root/.nvm/versions/node/v20.0.0/bin/npm

# node -v
v20.0.0

# npm -v
9.6.4

Listando as Versões Instaladas do Node.js

Você pode verificar todas as versões instaladas com o seguinte comando:

# nvm ls
List Installed Node Versions in Linux
->      v19.0.0
        v20.0.0
         system
default -> node (-> v20.0.0)
iojs -> N/A (default)
unstable -> N/A (default)
node -> stable (-> v20.0.0) (default)
stable -> 20.0 (-> v20.0.0) (default)
lts/* -> lts/hydrogen (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.24.1 (-> N/A)
lts/erbium -> v12.22.12 (-> N/A)
lts/fermium -> v14.21.3 (-> N/A)
lts/gallium -> v16.20.0 (-> N/A)
lts/hydrogen -> v18.16.0 (-> N/A)

Escolher a Versão do Node para um Projeto

Aqui é onde o nvm se torna interessante. Agora você pode usar o nvm para escolher a versão do Node.js a ser usada para cada projeto em que estiver trabalhando, com base nos requisitos. Vamos ver como fazer isso, conforme explicado abaixo.

Abra vários terminais e mova-se para os diretórios do projeto. Para este guia, temos dois projetos em ~/projects/app-server e ~/projects/test-ui que requerem a versão 19.0.0 e 20.0.0 do Node, respectivamente.

------------ Project 1 ------------ 
$ cd ~/projects/api-server
$ nvm use 19.0.0
$ node -v

------------ Project 2 ------------
$ cd ~/projects/test-ui
$ nvm use 20.0.0
$ node -v
Important: Note that when switching between different versions of Node.js, any global npm packages that you have installed will not work. This is because the multiple Node.js version installations are completely independent.

Por exemplo, se você tiver um pacote global instalado quando a versão 19.0.0 estiver ativa, quando você alternar para a versão 20.0.0, precisará reinstalar o pacote global na nova versão.

Importante, você pode visualizar o caminho para o executável para onde uma versão específica do Node foi instalada da seguinte maneira:

# nvm which 20.0.0
# nvm which 19.0.0
# nvm which system  #check system-installed version of a node using “system” alias

Definir a Versão Padrão do Node.js no Linux

Além disso, para definir manualmente uma versão padrão do node a ser usada em qualquer novo shell, use o alias “padrão” conforme mostrado.

# nvm alias default 20.0.0
# nvm alias default system
# nvm alias default 19.0.0
Note: You can create a .nvmrc initialization file in your project root directory (or any parent directory) and add a node version number or any other flags or usage options that nvm understands, in it. Then use some of the commands we have just looked at above to operate with the specified version in the file.

Desinstalando a Versão do Node.js no Linux

Para desinstalar ou remover uma versão do Node.js, execute o seguinte comando (não se esqueça de substituir 19.0.0 pelo número da versão):

# nvm uninstall 19.0.0

Desinstalando o NVM no Linux

Para remover o nvm manualmente do seu sistema, execute os seguintes comandos:

# rm -rf "$NVM_DIR"
OR
# rm -rf ~/.nvm

Em seguida, edite ~/.bashrc (ou o arquivo de configuração do perfil do shell aplicável, conforme listado acima) e remova as seguintes linhas de configuração:

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

Para obter mais informações, consulte nvm --help ou vá para o repositório do Gerenciador de Versões do Node: https://github.com/nvm-sh/nvm.

Isso é tudo! O Gerenciador de Versões do Node é um simples script bash para gerenciar múltiplas versões ativas do node.js em seu sistema Linux. Use o formulário de feedback abaixo para fazer perguntas ou compartilhar seus comentários conosco.

Source:
https://www.tecmint.com/nvm-install-multiple-nodejs-versions-in-linux/