Gerenciando meus Rubis locais

Alguns anos atrás comecei a gerenciar meus rubis locais com o RVM, mas nos últimos dois anos mudei por um tempo para Rbenv e atualmente decidi voltar a utilizar meu velho amigo RVM.

Um dos aspectos positivos do RVM são as Gemset já inclusas. Rbenv não tem isso incluso por defaut sendo preciso então instalar um plugin.

Então, qual meu workflow basico com RVM?

Basicamente, quando inicio um em projeto ruby o meu primeiro passo é decidicir (ou descobrir) qual a versão devo usar nele. Sabendo disso, dou uma olhada nas minhas versões locais disponíveis:

1
2
3
4
5
6
7
8
9
10
$ rvm list

rvm rubies

   ruby-1.9.3-p194 [ x86_64 ]
=* ruby-2.1.2 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

Se por exemplo a versão 2.1.3 for a necessária e não estiver instalada:

1
$ rvm install 2.1.3

Geralmente isso leva algum tempo para finalizar.

Com a versão Ruby correta em mãos é hora de criar uma Gemset específica para o projeto:

1
$ rvm gemset create myProj

Gemsets são legais pois elas isolam completamente as ruby gems do seu atual projeto em relação aos outros projetos que já rodam na sua maquina.

Posso então definir a versão ruby e gemset a ser utilizada no projeto:

1
2
$ rvm use 2.1.3
$ rvm gemset use myProj

ou simplesmente

1
$ rvm use 2.1.3@myProj

Uma boa pratica é criar arquivos padrões do RVM que definem a versão ruby e a gemset a sempre serem utilizados naquele projeto:

1
$ echo 'rvm use ruby-2.1.3@myProj' > .rvmrc && rvm rvmrc to ruby-version

Caso contrário toda vez que o diretório do projeto for acessado você terá que definir a versão e a gemset dele.

E finalmente, com isso a vida do seu projeto irá começar um pouco mais organizada e a sua também.

Comentários