Asdf-VM: alternativa moderna ao NVM, PyEnv, SdkMan e outros.

Asdf-VM: alternativa moderna ao NVM, PyEnv, SdkMan e outros.
Asdf-VM: alternativa moderna ao NVM, PyEnv, SdkMan e outros.

Um projeto exige Node.js 20, outro pede Python 3.12, e um terceiro ainda depende de Ruby 2.7. Enquanto isso, o sistema está com versões diferentes instaladas, e trocar entre elas vira um caos: variáveis de ambiente quebradas, caminhos duplicados, gerenciadores isolados para cada linguagem.

É nesse cenário que o asdf-vm se destaca. Ele oferece uma solução centralizada e elegante para gerenciar múltiplas versões de linguagens e ferramentas — tudo em um só lugar, com comandos simples, um único arquivo de controle por projeto e uma experiência fluida, mesmo em ambientes complexos.

O que é o asdf?

O asdf-vm é um gerenciador universal de versões. Com ele, você pode instalar e alternar entre múltiplas versões de linguagens como:

Node.js Python Ruby Elixir Java Go Rust entre dezenas de outras.

Tudo isso usando um único conjunto de comandos.

Vantagens do asdf sobre ferramentas como nvm, pyenv, rbenv e afins

✅ Gerenciamento centralizado

Você controla todas as linguagens e ferramentas via um único comando:

# Adiciona o plugin do Node.js
asdf plugin add nodejs

# Instala a versão 20.14.0 do Node.js
asdf install nodejs 20.14.0

# Define a versão global do Node.js para todo o sistema
asdf global nodejs 20.14.0

# Define a versão local do Node.js apenas para o projeto atual
asdf local nodejs 18.19.1

Baseado em plugins

A arquitetura de plugins permite adicionar suporte a novas ferramentas com facilidade. A comunidade mantém uma lista extensa e ativa, pronta para diversas necessidades.

📦 Arquivo .tool-versions

Com esse arquivo, cada projeto define suas próprias versões de linguagens e ferramentas:

nodejs 18.19.1
python 3.12.3
java openjdk-21

Ao entrar na pasta do projeto, o asdf reconhece automaticamente e aplica as versões corretas.

Mais leveza e menos conflito

Diferente de soluções separadas, o asdf evita instalações redundantes e mantém seu sistema limpo e coeso.

Entendendo o reshim

Após instalar ou atualizar versões, é importante rodar:

# Atualiza os shims internos e garante que os comandos reflitam as versões corretas
asdf reshim

Exemplo real com Node.js e Python

# Adiciona o plugin do Python
asdf plugin add python

# Instala a versão 3.12.3 do Python
asdf install python 3.12.3

# Define a versão global do Python
asdf global python 3.12.3

# Adiciona o plugin do Node.js
asdf plugin add nodejs

# Instala a versão 20.14.0 do Node.js
asdf install nodejs 20.14.0

# Define a versão local do Node.js para o projeto
asdf local nodejs 18.19.1

# Atualiza os shims após instalação
asdf reshim

Se você trabalha com múltiplas linguagens ou precisa manter ambientes consistentes entre projetos, o asdf-vm é uma escolha madura e eficiente. Ele simplifica a gestão de versões, evita conflitos e melhora o fluxo de desenvolvimento.