Olá Pessoal, hoje vou falar do RVM(Ruby Version Manager)
ele é um gerenciador para vários ambientes de ruby, ou seja, você pode instalar por exemplo ruby 1.8.7 , 1.9.1 ou até jruby e alternar entre ele facilmente. Qual o propósito do RVM ? Com o RVM você pode criar ambientes específicos para cada projeto, utilizando a versão de Ruby que mais se apropria a cada situação, mas o mais legal não é apenas o gerenciamento de ruby, mas sim das Gem’ s que você irá usar, resumindo, nessa ambiente criado você pode usar gems específicas em versões específicas, utilizando a versão do ruby de sua preferência. Alguns Benefícios:
- Projetos mais independentes: Alguns projetos precisam de versões específicas gem’ s, ou se você quiser instalar uma Gem para apenas um ambiente, tendo assim um maior controle, pois o ambiente padrão não conterá aquela gem.
- Você pode testar como seu projeto se comporta com diferentes versões de gems
- Versionamento do Ruby(é muito fácil alterar ente Ruby’ s)
talk is cheap, show me the code
Bom pessoal eu vou mostrar como se instala ele no ubuntu, porem ele se torna genérico depois da instalação .
Instalação
Bom primeiramente você deve ter o Ruby e o RubyGems e o curl instalados, caso não tenha abra um terminal e digite
sudo apt-get install ruby rubygems curl
Você vai precisar do Git.
sudo apt-get install git-core
Aqui são mais algumas coisinhas para o funcionamento
sudo apt-get install build-essential zlib1g-dev libssl-dev libreadline5-dev
Um vez instalado o rubygems você instala o rvm como uma gem qualquer
sudo gem install rvm
ele irá instalar o rvm, mas ainda não esá totalmente configurado, precisamos acessar a pasta aonde ele foi instalado, e rodar a instalação dele manualmente, tem que acessar a pasta mesmo, eu já tentei acessar o arquivo diretamente mas não dá certo.
Não Faça isso com SUDO
cd /var/lib/gems/1.8/bin/ ./rvm-install
Feito isso você já pode instalar os Rubies
Bom, existem muitos Rubies para você instalar e testar, para saber os que estão disponíveis use o seguinte comando:
rvm list know #no meu caso são esses abaixo # MRI Rubies (ruby-)1.8.6(-p399) (ruby-)1.8.6-head (ruby-)1.8.7(-p302) (ruby-)1.8.7-head (ruby-)1.9.1-p243 (ruby-)1.9.1-p376 (ruby-)1.9.1(-p429) (ruby-)1.9.1-head (ruby-)1.9.2-preview1 (ruby-)1.9.2-preview3 (ruby-)1.9.2-rc1 (ruby-)1.9.2-rc2 (ruby-)1.9.2(-p0) (ruby-)1.9.2-head ruby-head # JRuby jruby-1.2.0 jruby-1.3.1 jruby-1.4.0 jruby-1.5.1 jruby(-1.5.2) jruby-head # Rubinius rbx(-1.0.1) rbx-head # Ruby Enterprise Edition ree-1.8.6 ree(-1.8.7) ree-1.8.6-head ree-1.8.7-head # MagLev maglev(-24067) maglev-head # Shyouhei head, the default mput mput(-head) # Mac OS X Snow Leopard Only macruby(-nightly) # the default macruby macruby-head # Build from the macruby git repository # IronRuby -- Not implemented yet. ironruby-0.9.3 ironruby-1.0-rc2 ironruby-head
Eu sugiro instalar o Ruby Enterprise Edition (ree), que tem as mesmas funcionalidades do ruby normal, porem gasta cerca de 33% menos memória. Para instalar basta digitar RVM install e a versão do ruby que quer instalar.
rvm install ree rvm install 1.9.2 rvm install jruby
Ele vai instalar os ambientes para você, demora um pouquinho, dependendo da sua conecxão
Se você não tiver o curl instalado ele vai dar um erro
fail: rvm requires curl. curl was not found in your active path.
basta digitar um
sudo apt-get install curl
para resolver o problema.
Alternando entre os Rubies
Depois de ter instalado, é muito fácil e rápido alternar entre os rubies com um simples comando:
rvm + nome do ruby(ree, 1.9.2, jruby, etc) rvm ree rvm jruby rvm 1.9.2
para alternar entre o ruby desejado, use ruby -v para saber a versão de ruby que está usando
rvm jruby ruby -v #para saber qual versão de ruby está sendo usada execute ruby -v jruby 1.5.1 (ruby 1.8.7 patchlevel 249) (2010-06-06 f3a3480) (OpenJDK 64-Bit Server VM 1.6.0_18) [amd64-java] rvm ree ruby -v #para saber qual versão de ruby está sendo usada execute ruby -v ruby 1.8.7 (2010-04-19 patchlevel 253) [x86_64-linux], MBARI 0x6770, Ruby Enterprise Edition 2010.02 rvm 1.9.2 ruby -v #para saber qual versão de ruby está sendo usada execute ruby -v ruby 1.9.2dev (2010-07-11 revision 28618) [x86_64-linux]
Bom, mas temos que definir qual versão do Ruby será a padrão do RVM, para isso faça rvm –default nomedoruby, exemplo abaixo:
rvm --default ree #para usar o ree, se quizer o 1.9.2 ou o jruby,
subtitua o ree pelo nome do ruby que você quer, caso não seja o ree
Isto encerra a configuração dos Rubies.
existem mais alguns comandos úteis para a manipulação dos rubies instalados.
Para listar os rubies instalados
rvm list rubies
rvm list default
rvm list know
which ruby
Importante, dentro do RVM estarão instalados as várias versões do ruby, e provavelmente você estará usando uma delas, se quiser voltar à versão do ruby que está no sistema(fora do rvm) bastar mandar ele usar o system
rvm system which ruby #para ver aonde está instalado /user/bin/ruby
Para usar a qualquer momento o ruby padrão
rvm default
Para Remover um Ruby instalado existem duas maneiras
rvm remove jruby(ree,etc)
Esta remove o ruby selecionado e todas as gems instaladas Dentro Dele, e tudo mais
rvm uninstall jruby(ree,etc)
Esta só remove o Ruby selecionado
Configurando o Terminal
Agora, quem quiser pode dar uma mexida no terminal para configurá-lo para mostrar a versão em uso do ruby e o brach do git, isso ajuda bastante, vai ficar algo +/ assim:
Para isso vamos ter que editar o arquivo bashrc , no terminal(como sempre :P) digite:
sudo gedit ~/.bashrc
E na última linha cole o seguinte trecho:
if [[ -s $HOME/.rvm/scripts/rvm ]] ; then source $HOME/.rvm/scripts/rvm fi export PS1='\[33[38m\]\u\[33[32m\] \w \[33[1;33m\]`~/.rvm/bin/rvm-prompt i v `\[33[0;31m\] `git branch 2> /dev/null | grep -e ^* | sed -E s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ / `\[33[37m\]$\[33[00m\] '
Após isso Salve o arquivo e vai estar tudo certo, créditos ao Maurício de Amorim
Gem Set
Para cada ruby instalado, rvm cria um diretório vazio de gems, assim, quando você muda de ruby, você também muda as gems instaladas, tendo assim um controle sobre quais gems cada ruby vai utilizar.
Mas o melhor de tudo são as Gem Sets , que são conjunto de gems que você pode criar dentro de cada ruby para separar ainda mais as gems que irá usar, ou seja, independência total nos seus projetos.
Criando Gem Sets
Quando você instala um novo ruby, ele vem sem nenhum gem dentro, e você instala as gems que querer, mas quando cria uma nova Gem Set, novamente é criado um novo ambiente vázio de gems, usando quele ruby que você escolheu.
Para criar uma Gem Set é fácil
rvm gemset create nome_que_voce_quer_para_gem_sem
rvm gemset create rails_1_2_6 #exemplo
Alternando Entre Gem Sets
Após criar uma Gem Set, você precisa usa-la para isso digite:
rvm use rails_1_2_6
substitua o rails_1_2_6 pelo nome da gem que você criou, o mesmo comando server para alternar entre as gem sets que você tem criada. Se você não quiser usar mais nenhuma gem set, basta mudar para o ruby que você quer, o padrão por exemplo
rvm default
Um comando bem bacana para você saber quais gem sets tem instalado é :
rvm gemset list
Instalando Gems
Para instalar ar gems tanto dentro de gem sets como dentro dos rubies é normal(gem install nome da gem)
gem install rails -v1.2.6
No exemplo acima eu instalei o Rails 1.2.6, você deve estar se perguntando o porquê, sendo que o rails 3 teve seu lançamento hoje (29/08/2010), bom, a resposta é o livro: Desenvolvimento Ágil com Rails, do D.H.H.e D. Thomas, que é muito bom, e estou lendo :D.
Limpando Gem Set
Caso você queira limpar uma gem set, excluir todas as gem dela é bem simples, use:
rvm gemset empty rails_1_2_6
Excluindo Gem Sets
Para excluir uma gem Set também é simples:
rvm gemset delete rails_1_2_6
Bom Pessoal, esse é o Básico sobre RVM e Gem Sets , espero que ajude a todos, quem quiser mais informações a Documentação no próprio Site é excelente http://rvm.beginrescueend.com/
Abraço a todos e até a próxima.
Cara primeiramente valeu pelo artigo, mto bom mesmo! Em alguns casos eu consegui usar alterando algumas coisas e vendo o uso correto nas mensagens de erro. Como esse “rvm list know” , veja o Usage: , tem N no final..
edvan@edvan-linux:~$ rvm list know
Usage:
rvm list [action]
Actions:
{help,known,gemsets,default [string],rubies,strings,known_strings,ruby_svn_tags}
algumas coisas eu fui adaptando assim e funcionou de boa!
opa masssaaa
abraco