Gerenciar versões do ruby com RVM \| TreinaWeb               Promoção no ar   Matricule-se agora e garanta **54% de desconto**  

  Termina em   Tempo restante da oferta: 21 Horas 

 09 Min 

 15 Seg 

   Tempo restante da oferta: 21 09 15 

  [Assinar →](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26) 

   [                ](https://www.treinaweb.com.br)  Explorar  

 [ Quanto custa? ](#assinatura) [ FAQ ](https://www.treinaweb.com.br#faq) [Matricule-se](#assinatura) [ Entrar ](https://www.treinaweb.com.br/login) 

     [ Início ](https://www.treinaweb.com.br) [ Artigos ](https://www.treinaweb.com.br/blog) Gerenciar versões do ruby com RVM  [ Ruby ](https://www.treinaweb.com.br/blog/categoria/ruby) 

# 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.

 [ Bruno Meira ](https://www.treinaweb.com.br/blog/autor/bruno-meira) 10 anos atrás

  ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/ruby-on-rails.jpg)  

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.

[  ![Ruby on Rails Básico](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/ruby-on-rails.svg)   Curso Ruby on Rails Básico Conhecer o curso ](https://www.treinaweb.com.br/curso/ruby-on-rails-basico)

## 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`:

```
$ 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:

```
$ 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
$ 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.

[  ![Windows - Fundamentos para desenvolvedores](https://d2knvm16wkt3ia.cloudfront.net/assets/svg-icon/windows-server.svg)   Curso Windows - Fundamentos para desenvolvedores Conhecer o curso ](https://www.treinaweb.com.br/curso/windows-fundamentos-para-desenvolvedores)

- [ #Ruby ](https://www.treinaweb.com.br/blog/tag/ruby)

Autor

 ![Bruno Meira](//secure.gravatar.com/avatar/355a5e9b93dc182ba2fc2977dfb4434b?d=mm)

## Bruno Meira

 Desenvolvedor full stack, com foco em Ruby on Rails. Trabalha com desenvolvimento a mais de 5 anos. 

 [Todos os artigos](https://www.treinaweb.com.br/blog/autor/bruno-meira)  

## Continue estudando

 Transforme leitura em prática com os cursos e formações da TreinaWeb.

 [Ver cursos](https://www.treinaweb.com.br/cursos)   

  Continue lendo

## Artigos relacionados

- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/06/27155958/nvm-400x280.png)  [ Node ](https://www.treinaweb.com.br/blog/categoria/node-js) 

     7 anos atrás

    ##  [ Instalando e gerenciando várias versões do Node.js com NVM ](https://www.treinaweb.com.br/blog/instalando-e-gerenciando-varias-versoes-do-node-js-com-nvm) 

     Aprenda a instalar e gerenciar várias versões do Node.js em sua máquina.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2016/10/yarn-um-novo-gerenciador-de-dependencias-para-javascript-400x280.jpg)  [ Javascript ](https://www.treinaweb.com.br/blog/categoria/javascript) 

     10 anos atrás

    ##  [ Yarn: Um novo gerenciador de dependências para JavaScript ](https://www.treinaweb.com.br/blog/yarn-um-novo-gerenciador-de-dependencias-para-javascript) 

     Yarn nasceu para ser uma opção rápida e segura de se gerenciar dependências em JavaScript.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/03/guia-da-linguagem-python-400x280.png)  [ Python ](https://www.treinaweb.com.br/blog/categoria/python) 

     6 anos atrás

    ##  [ Guia da linguagem Python ](https://www.treinaweb.com.br/blog/guia-da-linguagem-python) 

     Entenda os principais conceitos para iniciar seus estudos neste guia da linguagem Python.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/TWELVE-FACTOR-APP-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     6 anos atrás

    ##  [ O que são os 12 Factor App? - Parte 1 ](https://www.treinaweb.com.br/blog/o-que-sao-os-12-factor-app-parte-1) 

     Se você trabalha desenvolvendo aplicativos que funcionam como um serviço, conheça os 12 (Twelve) Factor App, uma metodologia que te ajudará a criar aplicações melhores.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/05/a6GH8712a1-400x280.jpg)  [ PHP ](https://www.treinaweb.com.br/blog/categoria/php) 

     10 anos atrás

    ##  [ O PHP e o seu ecossistema nunca estiveram tão fortes ](https://www.treinaweb.com.br/blog/o-php-e-o-seu-ecossistema-nunca-estiveram-tao-fortes) 

     O PHP nunca esteve tão forte. Nesse artigo, algumas desconstruções de famosas falácias acerca do PHP e alguns pontos que o fazem ser uma completa plataforma para a Web.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/11/06104639/TW-ENTREVISTAS-FABIO-400x280.png)  [ Desenvolvimento Web ](https://www.treinaweb.com.br/blog/categoria/entrevistas-desenvolvimento-web) 

     8 anos atrás

    ##  [ TW Entrevista 08: Fabio Costa ](https://www.treinaweb.com.br/blog/tw-entrevista-08-fabio-costa) 

     Fizemos uma série de entrevistas chamada "TW Entrevista". O entrevistado de hoje é o Fabio Costa, desenvolvedor que já trabalhou na Globo.com, no Facebook e agora está na GoDaddy.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/02/TWELVE-FACTOR-APP-400x280.png)  [ Engenharia de Software ](https://www.treinaweb.com.br/blog/categoria/engenharia-de-software) 

     6 anos atrás

    ##  [ O que são os 12 Factor App? – Parte 2 ](https://www.treinaweb.com.br/blog/o-que-sao-os-12-factor-app-parte-2) 

     No artigo anterior, foi apresentado o conceito do 12 Factor App. Nessa segunda parte, veremos mais três fatores: Backing Services; Build, Release, Run e Processes.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2021/01/introducao-ao-maven-aprenda-como-criar-e-gerenciar-projetos-java-400x280.png)  [ Java ](https://www.treinaweb.com.br/blog/categoria/java) 

     6 anos atrás

    ##  [ Introdução ao Maven, aprenda como criar e gerenciar projetos Java ](https://www.treinaweb.com.br/blog/introducao-ao-maven-aprenda-como-criar-e-gerenciar-projetos-java) 

     Neste artigo veremos como instalar o Maven e como podemos utilizá-lo para nos auxiliar na criação e no gerenciamento de dependência de um projeto Java.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2020/02/07152007/AWS-CLI-400x280.png)  [ Amazon ](https://www.treinaweb.com.br/blog/categoria/amazon) 

     7 anos atrás

    ##  [ Como instalar e configurar o AWS CLI ](https://www.treinaweb.com.br/blog/como-instalar-e-configurar-o-aws-cli) 

     O AWS CLI é uma ferramenta em linha de comando capaz de gerenciar recursos na AWS. Com ela é possível listar todas as EC2 no seu ambiente, ou até mesmo criar um novo banco de dados com RDS com poucos comandos, tudo isso sem precisar acessar o console da AWS. Nesse artigo vamos acompanhar como é o processo de instalação e configuração do AWS CLI.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/11/12104935/VIRTUALENV-400x280.png)  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

     8 anos atrás

    ##  [ Criando ambientes virtuais para projetos Python com o Virtualenv ](https://www.treinaweb.com.br/blog/criando-ambientes-virtuais-para-projetos-python-com-o-virtualenv) 

     Neste artigo veremos como criar e utilizar as virtualenvs para isolar nossos ambientes de desenvolvimento python e, assim, instalar diferentes versões de uma mesma biblioteca.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2018/09/12180648/dev-ops-400x280.png)  [ DevOps ](https://www.treinaweb.com.br/blog/categoria/devops) 

     8 anos atrás

    ##  [ Afinal, o que é DevOps? ](https://www.treinaweb.com.br/blog/afinal-o-que-e-devops) 

     Você sabe o que é DevOps? Confira neste artigo.

     Ler artigo
- ![](https://dkrn4sk0rn31v.cloudfront.net/uploads/2019/04/23151507/TRUQUES-NPM-400x280.png)  [ Desenvolvimento ](https://www.treinaweb.com.br/blog/categoria/desenvolvimento) 

     6 anos atrás

    ##  [ O que é NPM e como usar uma biblioteca instalada por ele ](https://www.treinaweb.com.br/blog/o-que-e-npm-e-como-usar-uma-biblioteca-instalada-por-ele) 

     Saiba o que é o NPM (Node Package Manager), como utilizar um pacote, framework ou biblioteca instalada por ele e sobre o package.json.

     Ler artigo

## Um ano de acesso total para você viver de programação.

 Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro `console.log` ao mercado de trabalho.

- **1 ano** de acesso a **todos os cursos**
- Cursos novos **toda semana**
- Suporte **direto com professores**
- Plano de carreira **personalizado**
- **Certificados digitais** inclusos
- **Aplicativos** para Android e iOS, com **acesso offline**

    **Garantia incondicional de satisfação** 

 Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

### Acesso completo a todos os cursos e dezenas de Formações.

 12 meses 

  Economize R$ 840,00  54% OFF 

 de 12x R$ 129,00 por apenas

 12x  R$ 59,00

 sem juros no cartão de crédito ou R$ 599,00 à vista

  Oferta termina em  **21h 09min 15s**

- Acesso imediato e ilimitado durante 1 ano.
- Plano de carreira personalizado.
- Suporte direto com professores.
- E muito mais!

 [Matricule-se agora](https://www.treinaweb.com.br/checkout/pagamento/plano/anual?cupom=TW-SCLIENTE26)

     [                ](https://www.treinaweb.com.br)

 Escola online de programação, tecnologia e IA.

- [  ](https://www.facebook.com/TreinaWeb/)
- [  ](https://www.instagram.com/treinaweb/)
- [  ](https://www.youtube.com/user/TreinaWeb)
- [  ](https://twitter.com/treinaweb)
- [  ](https://www.linkedin.com/company/treinaweb)
- [  ](https://github.com/treinaweb)

## Inscreva-se em nossa newsletter

Receba lançamentos, promoções e novidades.

   Seu nome     Seu WhatsApp     Seu melhor e-mail   Inscrever-se 

## Cursos

- [ Base para Devs ](https://www.treinaweb.com.br/categoria/base-para-devs)
- [ Front-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-front-end)
- [ Back-end ](https://www.treinaweb.com.br/categoria/desenvolvimento-back-end)
- [ Mobile ](https://www.treinaweb.com.br/categoria/desenvolvimento-mobile)
- [ Bancos de Dados ](https://www.treinaweb.com.br/categoria/bancos-de-dados)
- [ Cloud ](https://www.treinaweb.com.br/categoria/cloud-computing)
- [ IA ](https://www.treinaweb.com.br/categoria/ia)
- [ E mais ](https://www.treinaweb.com.br/categoria/e-mais)
- [ Ver todos os cursos ](https://www.treinaweb.com.br/cursos)

## Conteúdo

- [ Formações ](https://www.treinaweb.com.br/formacoes)
- [ Projetos práticos ](https://www.treinaweb.com.br/projetos-praticos)
- [ Direto ao ponto ](https://www.treinaweb.com.br/direto-ao-ponto)
- [ Planos ](https://www.treinaweb.com.br#assinatura)
- [ Depoimentos ](https://www.treinaweb.com.br#depoimentos)
- [ Comunidade ](https://www.treinaweb.com.br#comunidade)
- [ Corpo docente ](https://www.treinaweb.com.br#docente)

## A empresa

- [ Sobre a TreinaWeb ](https://www.treinaweb.com.br#sobre)
- [ Perguntas frequentes ](https://www.treinaweb.com.br#faq)
- [ Vantagens de estudar na TreinaWeb ](https://www.treinaweb.com.br/vantagens-de-estudar-na-treinaweb)
- [ Cursos para empresas ](https://www.treinaweb.com.br/empresas)
- [ Sugira um novo curso ](https://www.treinaweb.com.br/sugerir-curso)
- [ Trabalhe conosco ](https://www.treinaweb.com.br/trabalhe-conosco)
- [ Artigos ](https://www.treinaweb.com.br/blog)
- [ Desenvolvedores e agentes ](https://www.treinaweb.com.br/developers)
- [ Contato ](https://www.treinaweb.com.br/contato)
- [ Política de privacidade ](https://www.treinaweb.com.br/politica-de-privacidade)
- [ Termos de uso ](https://www.treinaweb.com.br/termos-de-uso)

## Baixe nosso aplicativo

 [   Disponível na **App Store**  ](https://apps.apple.com/us/app/treinaweb/id1322729447) [   Disponível no **Google Play**  ](https://play.google.com/store/apps/details?id=br.com.treinaweb.mobile) 

  Av. Paulista, 1765, Conj 71 e 72 · Bela Vista · São Paulo · SP · 01311-200   © 2004 – 2026 TreinaWeb Tecnologia LTDA · CNPJ 06.156.637/0001-58
