Rails Segmentation Fault on Mac OSX with RVM

2019-01-11 14:27发布

问题:

When creating a new rails app, I get the following error:

/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/net/http.rb:799: [BUG] Segmentation fault
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin10.8.0]

All the rails files appear to be generated, but the error above is still there. Any thoughts or suggestions would be greatly appreciated.

回答1:

It looks to me like a problem with LLVM GCC, try with GNU GCC.

The easiest way to do that is to install osx-gcc-installer and reinstall ruby:

rvm reinstall 1.9.3

EDIT2: it is also possible to use gcc-4.2 available via HomeBrew/MacPorts, install CommandLineTools and follow instructions from rvm requirements.

EDIT 1: I've googled around and come across this http://www.seqmedia.com/2012/05/08/frustrations-abound-rvm-vs-macports-and-the-bug-segmentation-fault/ - and I remember it was already mentioned to me openssl in OSX is broken, the easiest way to check it would be:

rvm get stable
rvm autolibs enable
rvm reinstall 1.9.3


回答2:

I googled around for this problem and found the following magic incantations:

rvm pkg install openssl
rvm reinstall 1.9.3 --with-openssl-dir=$rvm_path/usr

Sorry to not link back to a source but I can't remember which website had the winning formula. The gist of it is that ruby links against a bad version of openssl so doing it this way makes rvm install its own version of openssl and link ruby against that.



回答3:

Managed to fix it like this:

Update rvm: rvm get head
Install the required libraries: rvm requirements run
Reinstall 1.9.3: rvm reinstall 1.9.3

Runs for a while and seems really clean



回答4:

I fixed this bug by removing my gloabally installed gems and reinstalling the Heroku toolbelt. Not sure why but it worked for me.