运行’rails s’时出现分段错误

在进行捆绑安装后,我运行’rails s’会遇到此错误。

$ rails s /Users/XXXX/.rvm/gems/ruby-1.8.7-p352@r3/gems/json-1.5.3/ext/json/ext/json/ext/parser.bundle: [BUG] Segmentation fault ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-darwin10.8.0] Abort trap 

任何帮助将不胜感激。 谢谢!

  1. rvm gemset为空
  2. rvm使用ree @ my-gemset
  3. gem install bundler
  4. 捆绑安装

这解决了我的问题。 必须是针对错误版本的Ruby(在我的情况下)编译的一些扩展。 希望这对你有用!

如果您不使用RVM,我发现此命令可以卸载所有gem:

  1. ‘gem列表| cut -d“” – f1 | xargs gem uninstall -aIx’
  2. gem install bundler
  3. 捆绑安装

您的gemset未针对您正在使用的ruby版本进行编译。 我发现这对我有用:

  1. rvm gemset为空
  2. rvm gemset创建your_gem_set_name
  3. rvm使用1.8.7@your_gem_set_name –default
  4. 捆绑安装

您也可以尝试使用bundle exec rails s

拉出jsongem,看看是否有效。 如果他们没有,那么我就迷失了。 如果它们确实有效,那么你必须弄清楚为什么这个gem不适用于你的rails版本和你的ruby版本。

如果您查看Gemfile.lock,您将看到gems的“树视图”,嵌套的那些是由它们嵌套的依赖项所引入的。 看看你是否正在使用这个json gem进行重要的事情,或者它是否可以。

当我使用rails 3.0.9并尝试将其部署在只有3.0.3的主机上时,我遇到了一个非常类似的问题。 事实certificate,json gem是针对某些3.0.9版本的rails gem …也许是ActiveSupport? 我不记得那部分了。

你能告诉我们你使用的是什么版本的导轨吗?

新版本的Ruby 1.8.7导致了这个问题。 不得不从过去降级回到一个。