6

在 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]

这个问题在许多地方都有描述,包括:

4

2 回答 2

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

解决方案源自以下:

错误 #6383:使用 GCC 4.7 编译时超时模块中的段错误

于 2012-05-30T16:24:55.353 回答
1

另外,我会确保您拥有截至今天(2012 年 5 月 30 日)发布的稳定版本,即 4.7.0,而不是之前的 4.7 版本,这些版本不是稳定版本。RVM 的政策是不支持 GCC 的非稳定版本(也称为开发版本),因为我们不是编译器,呵呵。

然后,另外,请卸载并重新安装您原来的 1.8.7 版本。另一个选项是“rvm reinstall 1.8.7”,尽管并非所有以前的配置选项都可以重新生成以包括接受更改后的 CFLAGS 变量,如写入配置。@mpapis,我们是否需要在这里提倡使用 --autoconf --force ?

(mpapis 和我是 RVM 项目的开发人员,所以这是一个讨论标志和监控以查看应该做什么的好地方,这样我们就可以将信息推送给任何来找我们的人)

于 2012-05-30T17:28:50.207 回答