Ruby instalação: RVM & ASDF de maneira fácil para Mac Os M1
Quando comecei minha carreira em uma startup de tecnologia, eu tinha um sonho: possuir um MacBook. Com um salário líquido de R$2000,00, o MacBook Air parecia um luxo distante, mas eu estava determinado. Apesar do preço salgado de R$6900, parcelado em 12 vezes, eu fiz o investimento. Era um modelo com Intel e apenas 128GB de memória, que rapidamente se mostrou insuficiente. No entanto, o sentimento de realizar um sonho não tem preço.
Seis anos se passaram e, como tudo na tecnologia, meu fiel companheiro encontrou seu fim na forma de uma placa mãe queimada. O custo do reparo? Quase o preço de um novo. A Apple tem essa habilidade de te empurrar para o mais recente e o mais brilhante. E apesar de qualquer crítica, a marca fala por si só.
Trabalho com tecnologia e preciso de um sistema operacional confiável. Por isso, quando chegou a hora de substituir meu antigo MacBook, optei pelo MacBook Pro M1, um investimento de cerca de R$10.000,00. Mas com a nova arquitetura ARM, vieram novos desafios. A compatibilidade de bibliotecas e ferramentas que eu usava diariamente se tornou uma batalha constante.
A Apple oferece o Rosetta para ajudar na transição, mas a jornada foi árdua. Houve momentos em que dependi exclusivamente do Docker, e outros em que lutei com a falta de imagens para ARM. Mas, como em toda boa história de tecnologia, houve uma virada.
Desenvolvi um script em bash que me permite alternar entre arquiteturas e versões de forma simples e eficaz. E agora, quero compartilhar com vocês uma solução que finalmente funcionou para mim: a combinação do asdf e do RVM. O RVM não suporta algumas versões do Ruby, mas o asdf preencheu essa lacuna perfeitamente.
Para aqueles que enfrentam um dilema semelhante, aqui está um trecho de script para o seu .zshrc
que permite alternar entre o RVM e o asdf com facilidade:
# Função para usar o RVM
use_rvm() {
# Desativa o asdf removendo do PATH
export PATH=$(echo $PATH | sed -e 's|:$HOME/.asdf/shims||' -e 's|$HOME/.asdf/shims:||')
# Carrega o RVM
export PATH="$PATH:$HOME/.rvm/bin"
source $HOME/.rvm/scripts/rvm
# Define a versão do Ruby com RVM
rvm use $1
echo "Using RVM with Ruby version $(ruby -v)"
}
# Função para usar o asdf
use_asdf() {
# Desativa o RVM removendo do PATH
export PATH=$(echo $PATH | sed -e 's|:$HOME/.rvm/bin||' -e 's|$HOME/.rvm/bin:||')
unset GEM_HOME
unset GEM_PATH
# Carrega o asdf
source $HOME/.asdf/asdf.sh
# Define a versão do Ruby com asdf
asdf local ruby $1
echo "Using asdf with Ruby version $(ruby -v)"
}
Com um simples comando, você pode alternar entre ambientes e manter seu fluxo de trabalho ágil e eficiente. A tecnologia está em constante evolução, e nós, como profissionais da área, devemos nos adaptar e superar cada novo desafio. Meu MacBook Air pode ter sido o início, mas a jornada continua com o Pro M1 e além.
Para usar estas funções, você pode simplesmente chamar use_rvm <versão>
ou use_asdf <versão>
no seu terminal. Por exemplo:
use_rvm 2.7.2
ou
use_asdf 3.0.0
Certifique-se de substituir <versão>
pela versão específica do Ruby que você deseja usar.
Nota: Este script é um exemplo básico e pode precisar de ajustes dependendo da configuração específica do seu sistema. Por exemplo, se você tiver um arquivo .rvmrc
ou outras configurações específicas do RVM, pode ser necessário ajustar o script para lidar com isso. Da mesma forma, se o asdf requer configurações adicionais, você precisará incluí-las no script.