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.