ruby 运行'rails s'时出现分段错误

nue99wik  于 2022-11-04  发布在  Ruby
关注(0)|答案(5)|浏览(149)

在进行捆绑包安装后,我运行“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

如有任何帮助,我将不胜感激

11dmarpk

11dmarpk1#

  1. rvm use ree@my-gemset
  2. rvm use ree@my-gemset
  3. gem install bundler
  4. bundle install
    这为我解决了这个问题。一定是一些扩展对错误的Ruby版本进行了编译(在我的例子中)。希望它对你有用!
    如果你没有使用RVM,我发现这个命令可以卸载所有的gem:
    1.' gem list | cut -d" " -f1 | xargs gem uninstall -aIx '
  5. gem install bundler
  6. bundle install
egmofgnx

egmofgnx2#

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

brqmpdu1

brqmpdu13#

您的gemset没有为您正在使用的ruby版本编译。我发现这对我很有效:

  1. rvm gemset create your_gem_set_name
  2. rvm gemset create your_gem_set_name
  3. rvm use 1.8.7@your_gem_set_name --default
  4. bundle install
yb3bgrhw

yb3bgrhw4#

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

i2byvkas

i2byvkas5#

取出json gem,看看是否能正常工作。如果不能,那我就不明白了。如果能正常工作,那你就必须弄清楚为什么这个gem不能在你的rails版本和ruby版本上工作。
如果您查看Gemfile.lock,您将看到gem的“树视图”,嵌套的gem是由依赖项从它们嵌套的gem中拉入的gem。看看您是否正在使用此json gem来执行重要的任务,或者它是否可以运行。
当我把我的 rails 3.0.9 部署到一个只有3.0.3版本的主机上时,我遇到了一个非常类似的问题。结果发现json gem是针对某个3.0.9版本的rails gem的......也许是ActiveSupport?我记不清这部分了。
您能告诉我们您使用的是哪个版本的Rails吗?

相关问题