Como fazer update do Ruby no Mac OS Lion

06 Mar 2012
3 mins read

O Mac OS Snow Leopard e Lion já vem com o Ruby 1.8.7 instalado. Mas a versão mais atual do Ruby é a 1.9.3, e acho bem legal deixar atualizado. Foi o que tentei fazer na semana passada, mas tive alguns problemas, motivo pelo qual resolvi escrever este post, que talvez pode ajudar alguém que passou pelos mesmos problemas que eu passei.

Meu ambiente: tinha o Snow Leopard instalado e fiz update para o Lion. Também tenho o XCode instalado no meu Mac. Aparentemente, ter o XCode instalado no Mac pode gerar alguns problemas na hora de fazer o update do Ruby.

Vamos lá então. Eis o passo a passo para fazer update para o Ruby 1.9.3 no Mac OS:

1- Primeiro temos que instalar o RVM, mas para instalar o RVM, precisamos ter o git instalado na máquina, pois é a maneira mais recomendada de fazer o download do RVM. Para verificar se tem o git instalado, abra o terminal e digite:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
git --version
[/code]

Se o resultado for uma versão do git, ótimo, estamos prontos para fazer download do RVM. Se o resultado for git não foi encontrado, então é preciso fazer o download do git-osx-installer. Instale e depois continue com o próximo passo desse tutorial.

2- Instale o RVM digitando o seguinte comando no terminal:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
[/code]

3- Quando o RVM terminar de ser instalado, faça reload do terminal digitando:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
source ~/.bash_profile
[/code]

4- Agora feche o terminal e inicie uma nova sessão. Para ter certeza de que o RVM está instalado corretamente, digite:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
type rvm | head -1
[/code]

O resultado do comando acima será:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm is a function
[/code]

6 - Agora começa a parte em que tive problemas. Vamos fazer update do Ruby, e para isso basta digitar:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm install 1.9.3
[/code]

Quando executei o comando acima, tive o seguinte erro:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
ERROR: There has been an error while running make. Halting the installation.
[/code]

Aí tentei o seguinte comando, já que tenho o XCode instalado:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm install 1.9.3 --with-gcc=clang
[/code]

Com o novo comando, obtive o mesmo erro! :(

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
ERROR: There has been an error while running make. Halting the installation.
[/code]

Pesquisando pela net, achei um link (vou deixar nas referências ao final do post), que recomendava ter o homebrew instalado. Então instalei o homebrew. Para instalar o homebrew, digite no terminal:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
[/code]

Agora precisamos instalado o redline através do homebrew, para isso, digite:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
brew install readline
[/code]

Pronto! Aí tentei fazer update do ruby novamente:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm remove 1.9.3
rvm install 1.9.3
[/code]

Erro novamente! :( Só que o erro agora foi diferente:

ERROR: The autodetected CC(/usr/bin/gcc-4.2) is LLVM based, it is not yet fully supported by ruby and gems, please read `rvm requirements`, and set CC=/path/to/gcc .

E em outra referência consegui achar a solução! E a solução é digitar os dois comandos abaixo:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm get head
CC=/usr/bin/gcc-4.2 rvm install 1.9.3 --enable-shared
[/code]

Pronto! Aí consegui fazer o update do Ruby sem nenhum problema! :)

7- Quando a instalação terminar, vamos setar a nova versão como a versão a ser usada digitando:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm use 1.9.3
[/code]

8- Agora vamos conferir a versão:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
ruby -v
[/code]

O resultado deve ser:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0]
[/code]

9- Agora vamos setar essa nova versão como a versão default a ser usada no futuro:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm --default 1.9.3
[/code]

10- Se quiser voltar a usar a versão antiga (1.8.7) basta digitar:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm system
[/code]

E voltar para a versão 1.9.3:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm 1.9.3
[/code]

ou:

[code lang="bash" firstline="1" toolbar="true" collapse="false" wraplines="false"]
rvm default
[/code]

Bem, é isso pessoal. Não sou expert em ruby, mas precisava fazer o update no meu Mac e tive os problemas relatados acima. Essa foi a maneira que consegui resolver - não sei se foi o menor caminho, mas foi o caminho que encontrei.

Abaixo deixo os links de referência que usei para escrever esse post:

Até a próxima! :)