Por que não consigo instalar o Rails on Lion usando RVM?


83

Estou tendo problemas ao tentar instalar o Rails no OS X Lion usando RVM.

Até agora, fiz o seguinte:

  1. Instalado o Mac OS X Lion versão 10.7 (Compilação 11A459e).
  2. Instalado o XCode 4.1 Developer Preview 5.
  3. RVM instalado.
  4. Instalou uma versão 1.8.7 do Ruby via RVM usando o comando rvm install 1.8.7. Observação: preciso usar 1.8.7 e não 1.9.2.
  5. Mudou para a versão 1.8.7 do Ruby usando o comando rvm 1.8.7.
  6. Criado um novo gemset usando o comando rvm gemset create rails3.
  7. Mudou para o novo gemset usando o comando rvm use 1.8.7@rails3.
  8. Para instalar o Rails executei o comando gem install rails mas recebi o seguinte erro:

    /Users/m/.rvm/rubies/ruby-1.8.7-p334/lib/ruby/1.8/timeout.rb:60: [BUG] Falha de segmentação

O mesmo erro acontece ao tentar executar qualquer comando gem, então não acho que seja realmente um problema com Rails.

A julgar pelos links abaixo, não pareço ser a única pessoa com este problema:

http://twitter.com/#!/pingles/status/66261101351927809 e https://github.com/carlhuda/bundler/issues/1058


2
Você está caminhando por uma borda muito sangrenta, e a adição de 1.8.7 provavelmente complica as coisas. Eu recomendo tentar instalar o 1.9.2, então Rails e ver como fica. ENTÃO, eu tentaria adaptar 1.8.7 e Rails. Como está, você está usando dois softwares que ainda não foram lançados, então você descobrirá que o suporte pode ainda não ter sido atualizado. A "falha de segmentação" geralmente é o resultado de uma construção de 32 bits em um sistema de 64 bits, o que pode acontecer com versões inesperadas do sistema. Estude o resultado de rvm infoe veja o que ele diz. Pode conter algumas pistas.
— o Homem de Lata

2
Como um aviso justo, Lion está sob NDA, então você provavelmente não tem permissão para falar sobre isso fora dos canais designados da Apple. A Apple poderia revogar sua conta de desenvolvedor por discutir o assunto, se quisesse.
— Chuck

Obrigado @ the Tin Man: Vou ver se há alguma coisa nas informações de rvm. Infelizmente, tenho que usar 1.8.7 para este projeto; seguir os passos acima, mas com Ruby 1.9.2 permitiu que o Rails 3 fosse instalado perfeitamente.
— Michael Jerome

Obrigado pelo aviso @Chuck - terei cuidado para não divulgar nada que tenha concordado em não divulgar.
— Michael Jerome

O RVM 1.9.2 não funciona com nenhuma dessas sugestões. rvm detecta llvm e não funciona
— Dale

Respostas:


77

Corrigido!

A resposta estava em um dos links que postei acima. Antes de instalar uma versão do ruby ​​(rvm install 1.8.7), eu precisava executar " export CC=/usr/bin/gcc-4.2". Com isso no lugar, tudo correu bem.

Se não quiser CCexportar permanentemente, você pode fazerCC=/usr/bin/gcc-4.2 rvm install 1.8.7

Se você já instalou o ruby ​​1.8.7. Apenas façaCC=/usr/bin/gcc-4.2 rvm reinstall 1.8.7


Lembro-me de ter lido em algum lugar que llvm seria o compilador padrão do Lion, suponho que seja por isso que você precisa de algo assim.
— Schmurfy de

3
Usar esse comando de exportação altera o CC para todos os comandos subsequentes em sua sessão ... o que pode atrapalhar outras compilações. Use CC=/usr/bin/gcc-4.2 rvm install 1.8.7uma única linha apenas para substituir o CC para a instalação do rvm.
— skue

Para valer a pena, a nota de @skue não funcionou para mim. Tive que adicionar isso ao meu .zshrcarquivo.
— Ben Kreeger de

1
@Benjamin Você está usando Z Shell, correto? Vale a pena notar, porque obviamente a maioria dos usuários de Mac usa apenas Terminal + Bash.
— Alan H.

1
@Alan H. - sim, definitivamente zsh. FWIW, no Lion, tive problemas com .rvmrcscripts de disparo de zsh , então voltei para bashpor um tempo. Portanto, adicionei essa linha ao meu .bash_profile.
— Ben Kreeger de

24

Se você instalou o Xcode 4.2, ele não instala mais o gcc não-LLVM, então você deve adicioná-lo. Por alguma razão, fazer o downgrade para a versão 4.1 depois de instalar a versão 4.2 não funciona corretamente (pelo menos não funcionou para mim e outros tiveram problemas semelhantes).

Depois de muita surra, isto é o que finalmente funcionou para mim:

  1. Instale o Xcode 4.2 da App Store
  2. Instale darwin gcc usando o instalador OSX gcc
  3. Instale o REE certificando-se de remover quaisquer vestígios de tentativas anteriores:

Feche todas as janelas de terminal abertas, abra uma nova e

rvm remove ree
export CC=/usr/bin/gcc-4.2
rvm install ree

Isso funcionou para mim com o rvm 1.8.6, OS X 10.7.2 e gcc-4.2 versão 4.2.1 (Apple build 5666).

Se você já instalou o Xcode 4.1, resista ao impulso de atualizar para o 4.2 e você estará bem.


Não vi dessa vez antes, mas achei esse pacote em outro tutorial .. Mas uma ótima resposta se as recomendações acima não funcionarem !!
— Tim Baas

Sim, acabei de receber um novo MBP e nenhuma das respostas anteriores funcionou para mim. FWIW, quando instalei o Xcode, eu, claro, peguei a versão mais recente, que é 4.2.1 agora. Instalei o instalador OSC gcc, adicionei a linha de exportação ao meu .bash_profile, depois executei novamente o comando rvm install usando --force e estava pronto para prosseguir. Obrigado!
— turboladen

Que bom que ajudou! Eu estava na mesma situação e nenhuma das outras respostas funcionou para mim, então eu queria documentar isso.
— Matt Sanders

Isso também funcionou para mim depois que todas as sugestões anteriores falharam.
— Cory Schires

Como atualização, recentemente reinstalei o Lion e consegui fazer tudo funcionar sem instalar o Xcode. Portanto, se ainda não o instalou, experimente apenas o instalador OSX gcc e veja se tem o que precisa.
— Matt Sanders

22

Se isso ainda não funcionar, adicione --force. Então isso se torna:

CC=/usr/bin/gcc-4.2 rvm install ruby-1.8.7 --force


Sim, se você iniciou a instalação sem o gcc-4.2, ele continuará de onde parou na segunda vez. Então você precisa de --force para apagar tudo que você já compilou com llvm e começar de novo.
— lawrence

Eu perdi meu ~ / .rvm e ainda tive que usar --force ty Hans
— Scott Smith

Obrigado Hans, --force é o que eu estava procurando também
— Stu

1
Freqüentemente, usar a make cleanpartir da linha de comando no diretório de instalação é o comando mais apropriado para usar em vez de --force. Force ignora erros, e erros são algo a que se deve prestar atenção. Por isso tem cuidado.
— o Homem de Lata de

7

Certifique-se de remover 1.8.7 se já o instalou antes de usar " export CC=/usr/bin/gcc-4.2" fazendo " rvm remove 1.8.7"


6

Eu tive o mesmo problema no meu sistema. Eu instalei as ferramentas de linha de comando Xcode da Apple que vem com o compilador LLVM e sem um LLVM gratuito.

Ruby 1.8.7 não funcionará com um compilador LLVM, nem mesmo com CC=clang , então instalar um gcc grátis LLVM resolve o problema.

Existem várias opções listadas aqui:

https://github.com/mxcl/homebrew/wiki/Custom-GCC-and-cross-compilers

Resumindo, instale o GCC v4.2 com Homebrew :

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb

e depois instale o ruby ​​1.8.7:

CC=gcc-4.2 rvm install 1.8.7

4
O URL do GitHub mudou. O comando agora é brew install https://raw.github.com/Homebrew/homebrew-dupes/master/apple-gcc42.rb.
— Matthew Ratzloff,

4

Em vez de " export CC=/usr/bin/gcc-4.2" fazer " export CC=gcc" (xCode 4.2.x deve ser instalado).


2

Verifique qual versão do gcc você tem assim:

ls -Al `which gcc-4.2`

Segui as instruções aqui: http://robots.thoughtbot.com/post/27985816073/the-hitchhikers-guide-to-riding-a-mountain-lion

brew update
brew tap homebrew/dupes
brew install apple-gcc42

Em seguida, reinstale:

Verifique novamente qual é o seu caminho para o gcc (para usar para CC =):

ls -Al `which gcc-4.2`

(opcional) Você pode definir isso em seu .bashrc, por exemplo:

export CC=/usr/bin/gcc-4.2

(opcional) remova qualquer versão antiga do ruby

rvm remove 1.8.7

Então:

CC=/usr/local/bin/gcc-4.2 rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

ou se você configurou CC em seu perfil

rvm --verify-downloads 1 reinstall 1.8.7-p357 --without-tcl --without-tk 

Observe as sinalizações na instalação do rvm. Tive problemas para verificar a soma de verificação no servidor ftp e alguns problemas com tck e quais não. Você pode omitir essas bandeiras.

Além disso: pode ser necessário remover uma versão antiga do seu gemset:

rvm gemset delete <gemset>

Então

gem install bundler
bundle install

Espero que isto ajude.


1

Usando macport e versão ruby-1.9.x. Eu instalei com sucesso rails com ruby ​​gem.


1

Tenho o mesmo problema apenas para o arch x86_64 , quando comento a linha no meu ~ / .rvmrc

rvm_archflags="-arch x86_64"

Abra um novo terminal e tente instalar o ruby-1.8.7 novamente

rvm install 1.8.7

Foi um sucesso.



0

Isso não está relacionado ao RVM, mas se o que você está procurando é um ambiente de desenvolvimento local para o Lion, experimente o RubyStack. É um instalador tudo-em-um de código aberto e gratuito para Apache, MySQL, Ruby, Rails, etc. Ele não requer compilação e é independente, então se você não gostar, você pode simplesmente remover o diretório de instalação e pronto. Aviso: Sou um dos desenvolvedores do RubyStack :)


0

CC=/usr/bin/gcc-4.2 rvm install 1.8.7não funcionou para mim, usei CC=/usr/bin/gcc rvm install 1.8.7e funcionou (verificando com "qual gcc")


0

Mesmo com todas as outras sugestões nesta página, eu ainda estava recebendo segfaults e ficando frustrado, então disse "dane-se!" e usar o Ruby 1.8.7 fornecido pelo sistema:

rvm use system

Você precisa usar o sudo para instalar gemas, mas ainda assim terá menos dor de cabeça.


Lembre-se de que o sistema Ruby 1.8.7 instalado está lá para uso da Apple. Podemos pegar carona nisso, mas tome cuidado ao atualizar as joias.
— o Homem de Lata de

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.