BUG Bus Error ruby 1.8.7

2019-01-16 15:11发布

问题:

I'm getting an error after compiling Ruby 1.8.7 using RVM on Lion 10.7.1 with Xcode 4.2 GM (new MacBook).

It compiles fine but when I try to install any gem I get the following:

gem install bundler
/Users/me/.rvm/rubies/ruby-1.8.7-p352/lib/ruby/1.8/timeout.rb:60: [BUG] Bus Error
ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin11.1.0]

Abort trap: 6

Update: In the end I hope to have Xcode 4.2 installed, RVM with Ruby 1.8.7, 1.9.x installed and all working properly.

回答1:

Since I had to parse through several of these answers to get things working with XCode 4.2, I thought I'd put it all together:

  1. Install Xcode 4.2
  2. Install the gcc standalone compiler from https://github.com/kennethreitz/osx-gcc-installer (which replaces Xcode)
  3. Add export CC=gcc-4.2 to your ~/.bash_profile or equivalent (don't forget to reload it)
  4. Run rvm implode" then re-install rvm http://beginrescueend.com/

At this point I was able to rvm install ruby-1.8.7 (and ruby-1.9.2), and actually get my gems to install.



回答2:

So nuking RVM (rvm implode) and reinstalling didn't make any difference. I ended up installing Xcode 4.2 and then installing the GCC compilers after which overrides the Xcode compilers.

Here are the steps for those Googling this.

  1. Install Xcode 4.2.x

  2. Install GCC standalone compilers from https://github.com/kennethreitz/osx-gcc-installer

    Note: Xcode 4.3 beta was recently released. I'm testing if this fixes the compilation issues.



回答3:

Multiple articles suggest that Ruby doesn't like being compiled with LLVM being involved. The stopgap measure is to thoroughly remove the RVM install – the linked articles say how – and then recompile Ruby with plain GCC. The real fix will have to come from Apple/LLVM or the Ruby team.



回答4:

I fix that by

  1. installing Xcode 4.2.x,
  2. adding export CC=gcc into ~/.bash_profile,
  3. Reloading environment (source ~/.bash_profile),
  4. executing rvm install 1.9.3,
  5. executing rvm ruby-1.9.3-rc1,
  6. executing gem update --system and finally
  7. executing gem install bundler

The problem is with Xcode 4.2.x version. If you run rvm get head you will see this message "DO NOT use Xcode Version 4.2.x. It currently fails to build several rubies and gems...".

I don't have solution for ruby v1.8.7.

I hope it helps.



回答5:

You can download find stand alone GCC installer instructions here: https://github.com/kennethreitz/osx-gcc-installer

This gives you a non llvm based gcc installation without having to mess around with Xcode.

You can then use the command

 export CC=/usr/bin/gcc-4.2 

This allows you to have the latest X Code for OSX purposes and still have a happy gcc version for ruby.



回答6:

I need to use Xcode on this machine, so the standalone gcc wasn't quite going to do it for me.

Per other posters, I followed the suggestions at the end of the RVM update's release notes.

Note, I didn't need to remove RVM. I was successful with a removal of Xcode 4.2.1 (completely), and a reinstall of Xcode 4.1, then doing the CC=/usr/bin/gcc-4.2 rvm install 1.8.7 trick. In my case I put export CC="/usr/bin/gcc-4.2" in my profile to save some typing while also setting up various gems.

This also worked for Ruby Enterprise Edition (ree-1.8.7-2011.03) which had been failing as well.



回答7:

The rvm post-install documentation says:

** Lion Users: DO NOT use Xcode Version 4.2.x for OS X Lion. It currently fails to build several rubies and gems, as well as several Homebrew and Macports packages as well. Xcode Version 4.1 (4B110) works. You can find Xcode 4.1 for OS X Lion at: https://developer.apple.com/downloads/download.action?path=Developer_Tools/xcode_4.1_for_lion/xcode_4.1_for_lion.dmg

This worked for me.



标签: ruby rubygems