Por que troquei o NVM pelo ASDF
O que é o asdf?
asdf é um gerenciador de versões de código aberto conhecido como "Abstract Scripting Definition Format". Ele oferece uma interface unificada para instalar, gerenciar e alternar entre diferentes versões de várias linguagens de programação e ferramentas. Ao contrário de outros gerenciadores de versões, o asdf é altamente versátil e suporta uma ampla gama de linguagens e ferramentas.
Por que eu troquei o NVM pelo asdf?
Eu decidi trocar o NVM pelo asdf quando comecei a programar com Elixir e Erlang. Outros gerenciadores como NVM ou N são especializados apenas no gerenciamento de versões do Node.js, GVM apenas GoLang, pyenv apenas para Python e etc, enquanto o asdf oferece suporte a uma variedade de linguagens, incluindo o Node.js e o Elixir. A transição para o asdf me permitiu ter um único gerenciador para todas as linguagens que eu precisava, simplificando meu ambiente de desenvolvimento.
Vantagens do asdf
O asdf oferece várias vantagens em comparação com outros gerenciadores de versões. Sua interface de linha de comando simples e consistente torna a instalação e o gerenciamento de versões fáceis e intuitivos. Além disso, o asdf permite o gerenciamento global ou por projeto, oferecendo flexibilidade na definição de versões específicas para cada projeto.
O NVM utiliza uma estrutura baseada em shell scripts para gerenciar as versões do Node.js. Ele utiliza uma série de scripts para instalar, desinstalar e alternar entre as versões do Node.js. Esses scripts manipulam as variáveis de ambiente, redirecionando o caminho para a versão desejada do Node.js e executando os comandos apropriados.
Por outro lado, o asdf adota uma abordagem mais modular e flexível. Ele utiliza plugins para cada linguagem ou ferramenta específica que você deseja gerenciar. Esses plugins contêm instruções sobre como instalar, desinstalar e definir as versões específicas para cada linguagem ou ferramenta suportada. O asdf utiliza o conceito de "version manager shim", que é um pequeno executável que redireciona as chamadas dos comandos para a versão correta instalada da linguagem ou ferramenta.
Suportes oficiais do asdf
O asdf possui suporte oficial para uma ampla variedade de linguagens e ferramentas. Além do Node.js e Elixir, ele também suporta Ruby, Python, Java, Erlang, Rust, PHP e muitas outras. Isso significa que você pode usar o asdf como seu principal gerenciador de versões, independentemente da linguagem em que está trabalhando.
Instalação do asdf
O asdf suporta sistemas baseados em UNIX, infelizmente, não existe suporte oficial para o Windows. No entanto, é possível utilizar o Windows Subsystem for Linux (WSL2) para aproveitar os recursos do asdf no Windows. Ao configurar o WSL2 e instalar o asdf no ambiente WSL2, você poderá usufruir de todas as funcionalidades do asdf em um ambiente Windows.
A instalação do asdf é simples e pode ser feita seguindo as etapas abaixo:
Métodos da comunidade
Gerenciador de pacotes | Comando |
---|---|
Homebrew | brew install asdf |
Pacman | git clone https://aur.archlinux.org/asdf-vm.git && cd asdf-vm && makepkg -si |
Método oficial
- Primeiro, instalte as dependencias
git
&curl
OS | Gerenciador de pacotes | Comando |
---|---|---|
linux | Aptitude | apt install curl git |
linux | DNF | dnf install curl git |
linux | Pacman | pacman -S curl git |
linux | Zypper | zypper install curl git |
macOS | Homebrew | brew install coreutils curl git |
macOS | Spack | spack install coreutils curl git |
Talvez seja necessário usar o comanado
sudo
antes dos comandos dependendo da sua configuração de usuário.
- Abra o terminal no seu sistema operacional.
- Execute o seguinte comando para clonar o repositório do asdf:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.12.0
- Adicione o seguinte código ao arquivo de configuração do shell que você está utilizando (por exemplo, .bashrc, .zshrc ou .bash_profile):
. $HOME/.asdf/asdf.sh
- O auto completar deve ser configurado manualmente a partir da adição da seguinte linha ao
.bashrc
:
. "$HOME/.asdf/completions/asdf.bash"
- Reinicie o shell ou execute o comando source para aplicar as alterações.
- Agora você pode instalar os plugins para as linguagens e ferramentas que deseja utilizar. Por exemplo, para instalar o plugin do Node.js, execute o seguinte comando:
asdf plugin-add nodejs https://github.com/asdf-vm/asdf-nodejs.git
- Para instalar o plugin do Elixir, utilize o comando abaixo:
asdf plugin-add elixir https://github.com/asdf-vm/asdf-elixir.git
- Com os plugins instalados, você pode instalar versões específicas das linguagens. Por exemplo, para instalar o Node.js versão 14.17.3, execute o comando:
asdf install nodejs latest
- Para definir uma versão global para o Node.js ou Elixir, utilize os comandos:
asdf global nodejs <versão>
asdf global elixir <versão>
- Para definir uma versão específica para um projeto, navegue até o diretório do projeto e execute os comandos:
asdf local nodejs <versão>
asdf local elixir <versão>
- Você também pode verificar a lista completa com todos comandos digitando:
asdf help
Conclusão
Agora você está pronto 🎉 para utilizar o asdf e aproveitar todas as vantagens de gerenciar versões de linguagens e ferramentas de forma simples e eficiente.
Lembre-se de consultar a documentação oficial do asdf (https://asdf-vm.com) para obter mais informações sobre como usar e personalizar o gerenciador de versões de acordo com suas necessidades específicas.