在linux(Fedora 17,Arch等)上构建ruby 1.8.7或在GCC 4.7上安装bundler gem的问题。我使用RVM发生了这个问题。我能够安装1.8.7,但无法安装bundler gem。我会收到以下错误:
$ gem install bundler
~/.rvm/rubies/ruby-1.8.7-p358/lib/ruby/1.8/timeout.rb:60: [BUG] Segmentation fault
ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux]
此问题在许多地方都有描述,包括:
答案 0 :(得分:18)
原始问题中链接中的问题描述建议安装旧版本的gcc来构建1.8.7,这不是必需的。
$ rvm remove 1.8.7
$ CFLAGS="-O2 -fno-tree-dce -fno-optimize-sibling-calls" rvm install 1.8.7
$ rvm use 1.8.7
$ gem install bundler
解决方案源自以下内容:
Bug #6383: Segfault in Timeout module when compiled with GCC 4.7
答案 1 :(得分:1)
另外,我会确保您拥有截至2012年5月30日发布的稳定版本,即4.7.0,而不是之前的4.7版本,这些版本不是稳定版本。 RVM的策略是不支持GCC的非稳定版本(也称为开发版本),因为我们不是编译人员嘿嘿。
然后,请卸载并重新安装原始版本的1.8.7。另一种选择是“rvm重新安装1.8.7”,但并非所有以前的配置选项都可以重新生成,以包括接受更改的CFLAGS变量,如写入配置。 @mpapis,我们是否需要提倡在这里使用--autoconf --force?
(mpapis和我是RVM项目的开发人员所以这是一个讨论标志和监视器的好地方,看看哪些应该这样做,所以我们可以将信息推送给我们的任何人来了解这个)< / p>