Gerenciar versões do ruby com RVM | Blog TreinaWeb
Gerenciar versões do ruby com RVM
Muitas vezes é necessário utilizar diferentes versões do Ruby. Veja como isso pode ser feito sem atrapalhar o seu ambiente.
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.
Curso Ruby on Rails Básico
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
O 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:
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:
Nessa lista é possível ver as versões 2.3.0 e 2.0.0. Agora, escolha uma versão e vamos usá-la:
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:
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:
$ rvm 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
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:
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
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.
Curso Ruby on Rails Intermediário
Desenvolvedor full stack, com foco em Ruby on Rails. Trabalha com desenvolvimento a mais de 5 anos.
Publicando uma aplicação ASP.NET Core no Heroku
Veja neste artigo como publicar uma aplicação ASP.NET Core no Heroku.
O que é Ruby on Rails?
Veja neste artigo o que é Ruby on Rails.
O que é a Linguagem de Programação Ruby?
Veja neste artigo o que é a linguagem de programação Ruby.
JavaScript Assíncrono com Generators
Generators são uma funcionalidade que veio no ES2015 para nos auxiliar no desenvolvimento de código...
JavaScript: você sabe o que são e por que usar Symbols?
Descubra a utilidade dos Symbols no JavaScript, novo tipo primitivo introduzido no ES2015.
Criando uma API RESTful com o NancyFx e .NET Core
O NancyFX é um leve framework para o C#. Veja como utilizá-lo para criar uma API RESTful.
O que é o Composer?
Veja neste artigo o que é o Composer.
O que é a Linguagem de Programação Julia?
Veja neste artigo o que é a Linguagem de Programação Julia.
Conhecendo o gerenciador de pacotes Homebrew
Neste artigo conheceremos o Gerenciador de Pacotes Homebrew.
Deploy de uma aplicação Spring Boot no Heroku
Neste artigo veremos como podemos realizar o deploy de uma aplicação Spring Boot na nuvem com o Hero...
TW Entrevista 07: Talita Pagani
Fizemos uma série de entrevistas chamada "TW Entrevista". A entrevistada de hoje é a Talita Pagani,...