dev-resources.site
for different kinds of informations.
đŠ ASDF: Gerenciando versĂ”es de linguagens e ferramentas num lugar sĂł
Imagine que vocĂȘ estĂĄ em um restaurante fast-food e vocĂȘ tem a liberdade de escolher os acompanhamentos do seu lanche. VocĂȘ pode optar por um pĂŁo integral, carne de frango grelhada, queijo cheddar e tomate. Mas e se, na prĂłxima vez, vocĂȘ quiser um hambĂșrguer com bacon e cebola caramelizada?
O asdf funciona como esse fast-food. No lugar de lanches, temos linguagens de programação e ferramentas como Python, Ruby, Node.js, etc. Em vez de ingredientes, temos versĂ”es especĂficas dessas linguagens.
Como funciona:
- VocĂȘ, o cliente: Ă o desenvolvedor que precisa de uma determinada versĂŁo de uma linguagem para um projeto especĂfico.
- O menu: Ă o repositĂłrio de plugins do asdf, onde vocĂȘ encontra todas as linguagens e ferramentas disponĂveis.
- O funcionĂĄrio: Ă o prĂłprio asdf, que vai buscar a versĂŁo exata da linguagem que vocĂȘ escolheu e configurĂĄ-la para vocĂȘ. Exemplo:
Imagine que vocĂȘ estĂĄ trabalhando em dois projetos: um que usa Python 3.6 e outro que usa Python 3.9. Com o asdf, vocĂȘ pode instalar ambas as versĂ”es e configurar cada projeto para usar a versĂŁo correta, sem conflitos.
Em resumo:
O asdf Ă© como um restaurante fast-food onde vocĂȘ monta o seu prĂłprio lanche, mas em vez de comida, vocĂȘ estĂĄ "montando" o seu ambiente de desenvolvimento. Ă uma ferramenta poderosa e flexĂvel que pode te ajudar a gerenciar mĂșltiplas versĂ”es de linguagens de programação de forma eficiente e organizada.
Neste post, vamos explorar como instalar e usar o asdf para gerenciar suas dependĂȘncias de forma eficaz. Mas antes, vamos entender:
- O que Ă© o asdf
- Plugins e versÔes
- Principais Comandos do asdf
- Instalação do asdf
- Guia Pråtico para Instalação de Plugins e VersÔes com o asdf
- (Opcional) LaboratĂłrio
O que Ă© o asdf?
O asdf Ă© um gerenciador de versĂ”es universal que permite que vocĂȘ utilize mĂșltiplas versĂ”es de linguagens de programação e ferramentas, tudo em um sĂł lugar. Com ele, vocĂȘ pode alternar entre diferentes versĂ”es de uma mesma linguagem como se estivesse trocando de roupa, facilitando seu fluxo de trabalho e evitando conflitos.
Ao contrĂĄrio de outros gerenciadores, como o rbenv para Ruby ou o nvm para Node.js, o asdf se destaca pela sua versatilidade. Ele suporta uma variedade de linguagens atravĂ©s de plugins. VocĂȘ pode ter vĂĄrias versĂ”es do Node.js, Python ou Java instaladas e alternar entre elas sem esforço.
Se ainda nĂŁo ficou muito claro, FĂĄbio Akita fala e dĂĄ algumas dicas de uso do asdf no seu vĂdeo The DEFINITIVE UBUNTU Guide for Beginning Devs, no minuto 40:42.
Neste post, vamos explorar como instalar e usar o asdf para gerenciar suas dependĂȘncias de forma prĂĄtica. Mas antes, vamos entender dois conceitos-chave: plugins e versĂ”es.
Plugins e versÔes
De acordo com a documentação oficial, plugins sĂŁo as extensĂ”es que permitem ao asdf gerenciar diferentes ferramentas, como Node.js, Ruby e Elixir. JĂĄ as versĂ”es sĂŁo as diferentes iteraçÔes das dependĂȘncias que vocĂȘ pode utilizar. Por exemplo, vocĂȘ pode optar pela versĂŁo v20.18.0 do Node.js para um projeto especĂfico, enquanto usa uma versĂŁo diferente para outro.
Pronto para mergulhar no mundo do asdf? EntĂŁo vamos Ă prĂĄtica!
Principais Comandos do asdf
Esses são os comandos essenciais para instalar, listar e gerenciar versÔes no asdf.
asdf list
: Lista todos os plugins e as versĂ”es jĂĄ instaladas no seu ambiente. Ideal para verificar rapidamente o que estĂĄ disponĂvel.asdf plugin add <NOME-DO-PLUGIN>
: Adiciona um plugin ao asdf para que ele gerencie uma nova linguagem ou ferramenta. Por exemplo, para adicionar o plugin do Python, digite:
asdf plugin add python
-
asdf list all <NOME-DO-PLUGIN>
: Lista todas as versĂ”es disponĂveis para um plugin especĂfico, permitindo que vocĂȘ escolha a que deseja instalar. Exemplo para ver as versĂ”es do Python:
asdf list all python
-
asdf install <NOME-DO-PLUGIN> <VERSAO>
: Instala uma versĂŁo especĂfica de uma linguagem ou ferramenta. Para instalar a versĂŁo 3.13.0 do Python, por exemplo, use:
asdf install python 3.13.0
-
asdf global <NOME-DO-PLUGIN> <VERSAO>
: Define uma versĂŁo especĂfica de uma linguagem ou ferramenta como padrĂŁo para todo o sistema. Para definir a versĂŁo 3.13.0 do Python como global, digite:
asdf global python 3.13.0
-
asdf local <NOME-DO-PLUGIN> <VERSAO>
: Define uma versĂŁo especĂfica de uma linguagem ou ferramenta apenas para o diretĂłrio atual do projeto. Navegue atĂ© a pasta do projeto e execute o comando. Por exemplo:
asdf local python 3.13.0
Observação: Este comando cria um arquivo chamado .tool-versions na pasta do projeto, permitindo configurar uma versĂŁo especĂfica para cada repositĂłrio, independentemente da versĂŁo global.
Agora que jĂĄ conhecemos os comandos bĂĄsicos, vamos turbinar o nosso ambiente com alguns plugins e versĂ”es. VĂȘm comigo!
Instalação do asdf
Observação: se vocĂȘ Ă© daquelas pessoas que gosta de fazer testes na ferramenta antes de configurar no seu ambiente, vocĂȘ pode ir para o item (Opcional) LaboratĂłrio e prĂĄticar em um container docker para avaliar o asdf.
Clone o respositorio para a sua pasta home:
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
Execute os comandos abaixo para configurar o seu ~/.bashrc
:
echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
Aplique as configuraçÔes no terminal ativo:
source ~/.bashrc
Para outros tipos de shell como o zsh ou fish shell, acesse a documentação oficial do asdf.
Guia Pråtico para Instalação de Plugins e VersÔes com o asdf
Vamos instalar plugins e definir versĂ”es de linguagens e ferramentas populares com o asdf! A cada passo, vocĂȘ verĂĄ como configurar o ambiente para Node.js, Java, Maven e Python.
đ Começando com Node.js
Para configurar o Node.js no seu ambiente, siga estes passos:
1- Instalar dependĂȘncias: Vamos garantir que o sistema tenha todas as dependĂȘncias que vocĂȘ precisa.
sudo apt-get install dirmngr gpg curl gawk
2- Adicionar o plugin do Node.js: Com o plugin, o asdf serå capaz de gerenciar versÔes do Node.
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
3- Verificar o plugin instalado:
asdf list
VocĂȘ deve ver algo assim:
nodejs
No versions installed
4- Instalar uma versĂŁo do Node.js:
O primeiro passo antes de instalar uma versĂŁo, Ă© escolher uma versĂŁo disponĂvel e para isso liste as versĂ”es disponĂveis:
asdf list all nodejs
VocĂȘ deve ver uma lista semelhante ao exemplo abaixo:
...
22.11.0
23.0.0
23.1.0
Escolha uma das versĂ”es disponĂveis e execute o comando abaixo para instalar, por exemplo, a versĂŁo 23.0.0:
asdf install nodejs 23.0.0
5- Definir a versĂŁo do Node.js:
- Globalmente (para todo o sistema):
asdf global nodejs 23.0.0
Não se esqueça, o próximo passo é opcional, mas para executar, instale a versão latest com o comando
asdf install nodejs latest
.
- Localmente (apenas no diretĂłrio atual):
asdf local nodejs latest # ou qualquer outra versĂŁo disponĂvel
6- Verifique a versĂŁo do nodejs:
node --version
â Configurando o Java
1- Adicionar o plugin do Java: Isso permite instalar e gerenciar versÔes do Java no asdf.
asdf plugin add java https://github.com/halcyon/asdf-java.git
2- Verificar as versĂ”es disponĂveis do Java:
asdf list all java
3- Configurar a variĂĄvel JAVA_HOME: Para garantir que o sistema identifique o Java.
echo . ~/.asdf/plugins/java/set-java-home.bash >> ~/.bashrc
4- Instalar uma versĂŁo especĂfica do Java:
asdf install java adoptopenjdk-8.0.432+6
Observação: vocĂȘ pode executar o comando
asdf list all java
para ver as versĂ”es disponĂveis.
5- Verificar a versĂŁo do Java instalada:
java -version
6- Definir a versĂŁo do Java globalmente:
asdf global java adoptopenjdk-8.0.432+6
đ§ Configurando o Maven
1- Adicionar o plugin do Maven:
asdf plugin add maven
2- Instalar a versĂŁo mais recente do Maven:
asdf install maven latest
3- Definir a versĂŁo global do Maven:
asdf global maven latest
4- Verifique a versĂŁo do maven instalada:
mvn --version
đ Configurando o Python
1- Instalar dependĂȘncias para o Python:
sudo apt-get update && sudo apt-get install -y \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl \
llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev \
git
2- Adicionar o plugin do Python:
asdf plugin add python
3- Instalar a versĂŁo mais recente do Python:
asdf install python latest
4- Definir a versĂŁo global do Python:
asdf global python latest
5- Verifique a versĂŁo do python:
python --version
Esses passos sĂŁo suficientes para instalar e configurar as linguagens e ferramentas essenciais no asdf. Com essas instruçÔes, seu ambiente estarĂĄ preparado para alternar entre versĂ”es especĂficas conforme necessĂĄrio.
(Opcional) LaboratĂłrio
Se vocĂȘ estĂĄ aqui Ă© porque vocĂȘ ficou interessado em testar o asdf antes de configurar em sua mĂĄquina. Sendo assim, vamos lĂĄ!
Pré-requisitos:
- Docker
- Docker Compose
Criando o ambiente
Para facilitar o laboratĂłrio com o asdf, preparamos um ambiente configurado e pronto para uso em um container Docker. VocĂȘ sĂł precisa criar os arquivos indicados abaixo:
Arquivo Dockerfile
:
FROM ubuntu:24.04
# Atualiza o sistema e instala as dependĂȘncias
RUN apt-get update && apt-get install -y \
make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl \
llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev \
git nano sudo
# Adiciona um novo usuĂĄrio
RUN useradd -m -s /bin/bash usuario && \
echo "usuario:123" | chpasswd && \
usermod -aG sudo usuario
# Da permissÔes sudo sem senha para o novo usuårio
RUN echo "usuario ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
# Comando inicial para rodar o container no terminal do novo usuĂĄrio
USER usuario
# Instala e configura o asdf
RUN git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
RUN echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc && \
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
CMD ["/bin/bash"]
Arquivo docker-compose.yml
:
services:
asdf:
build:
context: . # Indica o diretĂłrio onde estĂĄ o Dockerfile
dockerfile: Dockerfile
container_name: asdf
tty: true # Mantém o terminal aberto
Construindo e executando o container
Com os arquivos prontos, execute o container com o comando abaixo:
docker compose up -d --build
Onde:
-
-d
: Executa o container em segundo plano -
--build
: Recria o container se o Dockerfile mudar
đĄ Isso deve demorar um tempinho para instalar todas as dependĂȘncias... âł Aproveite para esticar as canelas e tomar uma ĂĄgua đ§!
Após a instalação, acesse o container com o seguinte comando:
docker compose exec asdf bash
Agora vocĂȘ estĂĄ pronto para seguir com o tutorial no tĂłpico Guia PrĂĄtico para Instalação de Plugins e VersĂ”es com o asdf e testar os comandos do asdf!
Links
Featured ones: