Ruby 1.8.6`gem install`段错误与“中止陷阱6”

时间:2013-04-05 16:03:26

标签: ruby gcc rubygems segmentation-fault rbenv

我无法在Mountain Lion上安装新的rbenv安装的Ruby 1.8.6上安装任何宝石。 gem install段错误和shell打印“Abort trap:6”:

$ RUBYLIB= RUBYOPT= bash

$ gem install --verbose bundler
  GET http://rubygems.org/latest_specs.4.8.gz
  302 Moved Temporarily
  GET http://production.s3.rubygems.org/latest_specs.4.8.gz
  304 Not Modified
  Installing gem bundler-1.3.5
  Abort trap: 6

similar issues reported,但所有这些的答案是他们需要使用非Apple GCC 4.2来构建这样一个旧版本的Ruby。这不适用于我,因为我已经使用brew install apple-gcc42安装了GCC并且rbenv安装过程选择了它,如下所示:

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.8.6 (2010-09-02 patchlevel 420) [i686-darwin12.3.0]
  - INSTALLATION DIRECTORY: /Users/mislav/.rbenv/versions/1.8.6-p420/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /Users/mislav/.rbenv/versions/1.8.6-p420/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/mislav/.rbenv/versions/1.8.6-p420/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-darwin-12
  - GEM PATHS:
     - /Users/mislav/.rbenv/versions/1.8.6-p420/lib/ruby/gems/1.8
     - /Users/mislav/.gem/ruby/1.8
  - GEM CONFIGURATION:
     - "gem" => "--no-ri --no-rdoc"
  - REMOTE SOURCES:
     - http://rubygems.org/

$ ruby -rrbconfig -e 'puts RbConfig::CONFIG["configure_args"]'
  '--prefix=/Users/mislav/.rbenv/versions/1.8.6-p420'
  'CC=/usr/local/bin/gcc-4.2'
  'CFLAGS=  -Wno-error=shorten-64-to-32'
  'LDFLAGS=-L'\\''/Users/mislav/.rbenv/versions/1.8.6-p420/lib'\\'' '
  'CPPFLAGS=-I'\\''/Users/mislav/.rbenv/versions/1.8.6-p420/include'\\'' '

$ /usr/local/bin/gcc-4.2 --version
  i686-apple-darwin11-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)

3 个答案:

答案 0 :(得分:1)

我一眼就能看到的唯一区别是我将gcc-4.2安装到/usr/bin并且您使用了/usr/local/bin。那个不应该有所作为,但我想有可能是/usr/bin的一些Makefile硬编码gcc(这更常见 - 我猜?)。

由于您提到您使用Homebrew安装gcc-4.2,我还会添加我使用手动方法,遵循以下说明:http://caiustheory.com/install-gcc-421-apple-build-56663-with-xcode-42。我再也不认为应该有所作为,但你永远不会知道。

答案 1 :(得分:0)

新版本的rubygems可能不适用于Ruby 1.8.6及更早版本的版本。

您可以随时尝试使用slimgems作为替代方案。这是1.3.x系列rubygems系统的一个分支,它修补了bug,而不是功能。

答案 2 :(得分:0)

探索OS X的版本.Apple在新的OS X和Xcode中更改了他们的编译器。哪里的gcc安装?尝试运行哪个gcc。