O asdf é um gerenciador de versões para várias linguagens de programação. Um gerenciador de versão com suporte para Python, Ruby, Node.js, Elixir, Erlang, Rust e muitas outras linguagens. Basta instalar o plugin da sua linguagem favorita através da linha de comando do seu terminal com o asdf e já começar a codar 💻

Matrix

Vamos baixar e configurar o asdf e instalar um plugin para cada ferramenta que precisamos gerenciar. Existem diversas formas de instalação para o asdf. Vamos supor que você está usando o macOS, então rode o seguinte comando no seu terminal:

brew install asdf

Agora, se você usa o subsistema do Windows (WSL 2) ou o Linux (ou o Ubuntu) para instalar o asdf, basta rodar o seguinte comando no seu terminal:

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.10.0

Na sequência, adicione as linhas abaixo no arquivo ~/.bashrc (ou ~/.zshrc):

. $HOME/.asdf/asdf.sh
. $HOME/.asdf/completions/asdf.bash

Após adicionar as linhas acima, você pode abrir um novo terminal e digitar o comando asdf version para verificar se foi instalado com sucesso. Para ver a versão do asdf, digite o comando:

execute o comando asdf version no seu terminal

Agora que você tem o asdf instalado, vamos precisar instalar algum plugin. Como exemplo, vamos adicionar o plugin do Ruby ao asdf. Basta executar o comando:

asdf plugin add ruby

Ou o comando:

asdf plugin add ruby https://github.com/asdf-vm/asdf-ruby.git

Agora podemos instalar uma versão do Ruby. Para ver quais versões estão disponíveis, rode o comando:

asdf list all ruby

Ou, baseado na versão desejada, com o comando:

asdf list all ruby 3

Dessa forma ☝️ você consegue listar diferentes versões a partir da 3. Veja:

Lista versões do Ruby 3

Vamos instalar a última versão do Ruby, com o comando:

asdf install ruby latest

Temos a última versão do Ruby instalada no asdf, mas ainda precisamos definir a versão que vamos usar para codificar. Existem duas formas de definir uma versão, local e global.

A primeira é definir uma versão local, ou seja, que vai rodar e estar disponível no seu diretório desejado. Vamos imaginar um diretório chamado ~/parazito/code/ruby, e dentro dele você roda o comando:

asdf local ruby latest

No diretório atual, rode o comando: ruby -v. Como na imagem abaixo:

Lista versão atual do Ruby

Pronto! 🎉 Você tem acesso a última versão do Ruby no seu diretório desejado (ou atual).

Você também consegue definir uma versão global, que vai estar presente em todo o sistema operacional, e não apenas no seu diretório desejado. Com o comando:

asdf global ruby latest

Agora você tem acesso a última versão do Ruby em qualquer diretório que você desejar.

E se você quiser instalar qualquer outra linguagem, como Elixir, basta rodar os comandos:

asdf plugin add elixir
asdf install elixir latest

E definir a versão:

asdf global elixir latest

Você acabou de instalar e definir a última versão do Elixir para ser usado em qualquer diretório do seu sistema que você desejar. Vejamos:

Lista versão atual do Elixir

Logo abaixo segue um exemplo do comando asdf list, quando temos diversas ferramentas instaladas.

Lista versão das diversas ferramentas instaladas

Existem diversos plugins do asdf. Além de linguagens de programação, você também consegue instalar o PostgreSQL, redis, RabbitMQ, MongoDB, Terraform, entre outros.

Veja mais sobre como o asdf funciona e outras formas de ser usado na página do asdf.