Como instalar Ruby no macOS para desenvolvimento local
27 de setembro de 2022
0 minutos de leituraSe você está começando a desenvolver com Ruby ou Ruby on Rails, é importante saber:
Como instalar Ruby corretamente no Mac.
Como configurar um ambiente de desenvolvimento local que não entre em conflito com
brewnem com uma instalação existente do Ruby 2.7 no Mac
Neste tutorial, você vai aprender a fazer as duas coisas! Se você tem um dos novos notebooks M1 com macOS, não se preocupe: este tutorial também funciona para instalar Ruby no Mac M1.
Nunca execute brew install ruby
Alguns guias e artigos de blog recomendam instalar Ruby executando brew install ruby ou atualizar as versões existentes do Ruby no macOS com o comando update ruby mac. Recomendo fortemente que você evite fazer isso.
Dito isso, o usuário do Reddit postmodern comentou em uma discussão sobre Ruby que talvez seja possível configurar a instalação do brew para ser feita explicitamente em outro diretório. Por padrão, o Brew instala em /usr/local e, segundo postmodern, isso não interfere nos scripts Ruby do sistema Apple, porque o caminho do interpretador está definido diretamente como /usr/bin/ruby. Ele também destaca que a Apple planeja descontinuar as versões pré-instaladas de Python, Ruby e Perl.
Por que não usar o Ruby do sistema no Mac?
Se você executar comandos que alteram a versão nativa do Ruby, como brew install ruby ou brew uninstall ruby, corre o risco de prejudicar recursos e funcionalidades do macOS (isso também se aplica ao Mac M1).
Também vale destacar que a versão do Ruby pré-instalada no macOS está desatualizada. Em um novo notebook M1 de 2022, por exemplo, a versão é ruby 2.6.8p205. A versão mais recente, Ruby 3.1.2, foi lançada em abril de 2022 e representa uma grande atualização em relação à versão pré-instalada no macOS.
É provável que você queira usar Ruby 3 em um ambiente de desenvolvimento local — um ótimo motivo para deixar de usar as versões pré-instaladas do Ruby. Assim, você também fica livre para escolher a versão com a qual quer trabalhar. Para isso, vamos recorrer aos ambientes virtuais de Ruby.
Como verificar qual versão do Ruby está instalada no meu Mac?
Para verificar qual versão do interpretador Ruby está instalada nativamente, execute o comando:
Se você não atualizou o sistema, o macOS Monterey vem com Ruby 2.6.8. Se você atualizou ou gerencia versões do Ruby com rbenv, rvm ou outros gerenciadores de versão, poderá encontrar uma versão diferente. Às vezes, você também pode encontrar Ruby no caminho de arquivo /usr/local/bin/ruby, quando ele é instalado com o gerenciador de pacotes Homebrew para macOS.
Onde fica a pasta do Ruby no Mac?
No macOS, o interpretador Ruby costuma estar instalado nativamente nos caminhos de arquivo /usr/bin/ruby ou /usr/local/bin/ruby, dependendo de onde foi instalado. O sistema operacional instala e gerencia as gems do Ruby nativamente no macOS, por isso não é recomendável usar sudo gem install nem fazer alterações nessas gems. Em vez disso, considere instalar um ambiente virtual de Ruby com uma ferramenta como rbenv.
O ambiente virtual de Ruby
Um conceito útil e conhecido em outras linguagens de programação e suas ferramentas é o ambiente virtual de Ruby. Se você já usou o virtualenv do Python ou o nvm do Node.js, a virutalenv do Ruby será fácil de adotar. Para começar, você só precisa de algumas ferramentas do ecossistema Ruby, como rbenv ou rvm.
Essas ferramentas evitam conflitos com a versão nativa do Ruby no Mac: elas baixam o código-fonte do Ruby da internet, compilam-no localmente e o disponibilizam em um caminho. Em seguida, orientam você a adicionar esse novo caminho de diretório ao shell de sua preferência, para que a nova versão do Ruby fique disponível quando você abrir uma nova janela do terminal.
Na prática, são gerenciadores de versões do Ruby que permitem alternar rapidamente entre diferentes versões do runtime, conforme necessário e de acordo com o diretório de instalação do Ruby configurado.
Você deve usar rbenv ou rvm?
Duas ferramentas populares de ambiente virtual para Ruby são rbenv e rvm. Como ferramentas e versões específicas de ambiente tendem a ficar desatualizadas com o avanço do setor, não vou fazer uma comparação detalhada dos recursos de rbenv e rvm1. Em vez disso, pedi a opinião de alguns amigos desenvolvedores experientes em Ruby e escolhi rbenv, que foi a recomendação da maioria.
Outros gerenciadores de ambiente virtual para Ruby que ainda não explorei, mas que vale mencionar, são chruby e ruby-install.
Vamos começar com o rbenv
O projeto de código aberto rbenv está hospedado no GitHub, um ótimo lugar para acompanhar problemas e consultar a documentação atualizada no README do rbenv.
Como instalar o Ruby com rbenv
Assim como acontece com muitas outras ferramentas, vamos usar o popular gerenciador de pacotes Homebrew para macOS. Execute o comando a seguir no terminal:
Depois de instalar tudo, precisamos configurar o rbenv no shell para usar a versão do runtime do Ruby que instalamos com o rbenv sempre que abrirmos uma nova janela do terminal para digitar comandos (em vez da versão 2.6.8 pré-instalada no macOS).
Para configurar o rbenv no shell, execute o comando a seguir:
Siga as instruções exibidas na tela caso seja necessária alguma configuração adicional. Talvez seja preciso colar um comando no arquivo de configuração do shell. Se você usa macOS e não trocou o Z Shell (ZSH), que é o padrão, adicione a linha de código a seguir no início do arquivo ~/.zshrc:
A instalação do rbenv está concluída. Se quiser confirmar que tudo foi configurado corretamente, execute algumas verificações de diagnóstico. Para isso, use a ferramenta rbenv-doctor disponibilizada pelo projeto rbenv no GitHub:
Abra uma nova janela do terminal para carregar o novo ambiente do rbenv
Execute o comando:
curl -fsSL https://github.com/rbenv/rbenv-installer/raw/main/bin/rbenv-doctor | zsh
Aviso: não execute este comando sem avaliar os riscos: você está direcionando para o shell do seu ambiente de desenvolvimento comandos provenientes de um repositório público e de código aberto no GitHub. É possível que alguém mal-intencionado tenha adulterado o código-fonte. Por isso, recomendamos fortemente que você analise o código com atenção antes de executar o comando.
Como usar o rbenv para instalar uma nova versão do Ruby?
Parabéns por criar seu próprio ambiente virtual de Ruby! Agora que o rbenv está configurado e funcionando, podemos usá-lo para gerenciar todas as suas versões do Ruby.
Para começar, liste as versões do Ruby disponíveis para instalação e escolha a mais recente ou uma versão específica. Para listar todas as versões do Ruby com o rbenv, execute o comando a seguir:
O resultado foi:
Em seguida, você pode instalar uma dessas versões do Ruby. Vamos usar o rbenv para instalar a versão 3.1.2:
O comando vai baixar os arquivos de código-fonte necessários, extraí-los e compilá-los para instalar o runtime do Ruby 3.1.2, que ficará disponível no seu shell.
Depois de instalar, defina essa versão como a escolhida sempre que o shell for iniciado. Para isso, execute:
Por fim, você pode confirmar se tudo está funcionando como esperado executando ruby --version no shell. O resultado deve ser semelhante a:
Antes de encerrar, uma observação sobre rbenv global. Por causa do nome do comando (global), fiquei preocupado que executá-lo pudesse interferir de alguma forma na versão do Ruby pré-instalada no macOS. Não é o caso. O comando se refere à configuração global do usuário, que fica no arquivo de configuração do rbenv em ~/.rbenv/version, e significa que ela não está vinculada a um projeto ou diretório específico do Ruby.
E agora, o que vem a seguir?
Vulnerabilidades no Ruby on Rails e vulnerabilidades de segurança no Ruby
Antes de voltar às suas atividades de desenvolvimento com Ruby, confira estes recursos para seguir as práticas recomendadas de codificação segura e manter suas gems do Ruby protegidas contra vulnerabilidades. Eles são úteis tanto para lidar com vulnerabilidades no Ruby on Rails que surgem nas gems do framework quanto com vulnerabilidades de segurança no Ruby em geral.
Recomendo estes recursos sobre desenvolvimento com Ruby e segurança:
Se você está começando a desenvolver com Ruby ou ainda não entende bem como funcionam as dependências de código aberto no Ruby, confira meu artigo com um guia definitivo sobre gerenciamento de dependências de gems do Ruby.
Se você ainda não acredita que vulnerabilidades de segurança podem afetar seus projetos, recomendo uma leitura rápida do artigo de DeveloperSteve sobre Como melhorar a segurança do Gemfile do Ruby: um guia passo a passo com Snyk. Nele, o autor analisa alguns projetos com a ferramenta de segurança da Snyk para Ruby. A Snyk é gratuita e facilita começar a usar Ruby.
Por fim, fique atento à execução remota de código mal-intencionado e a outros riscos de segurança nas gems do Ruby, decorrentes de ataques à cadeia de suprimentos que já observamos em vários ecossistemas, inclusive no Ruby.
Experimente agora nossa ferramenta gratuita de verificação de código Ruby para ver como o mecanismo Snyk Code analisa seu código em busca de problemas de segurança e qualidade.
Comece a jogar Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.



