23 fevereiro 2023

Michelly Oliveira

Gerenciando versões do ruby com RVM

    Nenhum comentário:



Muitas vezes é necessário utilizar diferentes versões do Ruby, seja por uma decisão técnica no momento da criação do projeto, ou simplesmente porque você precisa dar manutenção em um sistema um pouco mais antigo que não tem necessidade de atualizar a versão do Ruby.

Sempre que era necessário esse tipo de ação, a perda de tempo para desinstalar uma versão do Ruby e instalar outra era muito grande, foi então que surgiu o RVM.


O que é o RVM?

RVM é acrônimo para Ruby Version Manager, ele é uma ferramenta de linha de comando que possibilita instalar e gerenciar diversas versões do Ruby e suas gems.

Usar o RVM facilita a transição entre versões do Ruby e versões das gems.

Usar o RMV é muito simples, o único requisito básico é um ambiente POSIX (linux, bsd, etc), nesse tutorial vou instalar no Mac, basta abrir o terminal e executar o comando abaixo:

$ curl -SSL https://get.rvm.io | bash -s stable

Esse comando vai instalar a última versão estável do RVM e está pronto para usar.

Caso você não tenha o pacote curl instalado basta entrar em https://github.com/curl/curl e seguir os passos para o download.


Instalando versões do Ruby

Usando o RVM é possível instalar qualquer versão do Ruby e qualquer implementação também, como o Jruby por exemplo. Nesse exemplo vamos instalar o Ruby 2.3.0 e o Ruby 2.0.0.

$ rvm install 2.3.0

2.3.0 é um atalho para o pachlevel da versão 2.3.0 do Ruby, esse atalho funciona para todas as versões. A instalação pode levar alguns minutos.

Para instalar outra versão basta executar o mesmo comando, apenas alterando a versão, no nosso exemplo vamos usar a versão 2.0.0:

$ rvm install 2.0.0

Após a instalação precisamos “entrar” no ambiente Ruby instalado, execute o comando abaixo:

$ rvm --default 2.3.0

Nesse momento definimos o Ruby 2.3.0 como default do seu computador e “entramos” no ambiente dessa versão. Para listar as versões do ruby instaladas ou Rubies como é chamado pelos criadores, basta executar:

$ rvm list

Nessa lista é possível ver as versões 2.3.0 e 2.0.0. Agora, escolha uma versão e vamos usá-la:

$ rvm use 2.0.0


Instalando Gems

Uma prática não aconselhada pela comunidade Ruby é instalar as gems usando o comando sudo, a intenção ao utilizar o RVM é criar ambientes independentes para cada versão do Ruby para que as gems com versões diferentes não atrapalhem no desenvolvimento.

Para isso, primeiro vamos listar as gems instaladas na Rubie escolhida:

$ gem list

Ao rodar esse comando serão apresentadas apenas as gems instaladas no ambiente que acabamos de criar, todas as suas gem instaladas usando o sudo continuam no seu computador, elas não aparecem nessa lista por que ao criar um novo ambiente (Rubie) ele é totalmente isolado dos demais, tendo suas próprias gems e versões. Para ter uma idéia disso execute o comando:

$ gem info

Ele apresenta todas as informações da Rubie usada, você pode ver, por exemplo, em gem:, que ele apresenta o caminho de instalação de todas as gems. Repare que a estrutura de diretórios deixa claro esse isolamento, no nosso caso fica assim:

~/.rvm/gems/ruby-2.0.0

Vamos então instalar o Rails. Dessa vez não usaremos o sudo:

$ gem install rails --no-ri --no-rdoc

Agora, execute novamente o gem list e veja a mudança no seu Rubie. Você pode mudar para outro Rubie e ver a diferença para ele:

$ rvm use 2.3.0

$ gem list


Gemsets

Haverá momentos que apenas separar as gems utilizadas por Rubies não vai ser suficiente, vai ser necessário a criação de Gemsets. Imagine que dois projetos utilizam a versão 2.3.0 do ruby, mas um utiliza o Rails 4.2.7 e o outro projeto utiliza o rails 5.0.0, para isso criamos Gemsets exclusivas para projetos.

Vamos supor que você tenha um projeto chamado loja. Para criar um gemset e entrar nele basta executar o seguinte comando:

$ rvm use 2.3.0

Esse primeiro comando vai definir a versão do ruby, em seguida:

$ rvm gemset create loja && rvm gemset use loja

Pronto! Você acaba de criar um novo gemset para o Rubie 2.3.0, se você executar gem list, verá a sua lista de gems e se executar rvm info, verá que gemset: vai estar um loja e em gem: o caminho de armazenamento das gems vai ser:

~/.rvm/gems/ruby-2.3.0@loja


Conclusão

A utilização do RVM é muito incentivada pela comunidade Ruby, afinal, muitos projetos antigos precisam de manutenção e novos projetos vão ser criados com novas versões do Ruby e o uso do RVM facilita esse gerenciamento. Juntamente com o Gemset para isolar o uso das gems, evita-se diversas dores de cabeça durante o dia a dia de trabalho.





Próximo
« Anterior
Anterior
Próximo »