运行rails S时出现分段错误(无法编译nokogiri)

我已经在配置地狱两天了,我已经尝试了Stack Overflow上的所有内容来修复它。 我觉得我尝试过的一些东西可能会让事情变得更糟。 我正在使用RVM,然后我尝试使用rbenv,现在我又回到了使用RVM。 我不确定是否有rbenv的残余导致这个或什么,但我按照说明完全删除它。

我目前得到的错误是:

https://gist.github.com/EvanTedesco/d4288cfb1f8dfc5a1e03

ruby -v:

ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-darwin13.4.0] 

rails -v:

 Rails 3.2.19 

xcode-select -p:

 /Library/Developer/CommandLineTools 

gem环境:

 RubyGems Environment: - RUBYGEMS VERSION: 2.4.3 - RUBY VERSION: 2.1.5 (2014-11-13 patchlevel 273) [x86_64-darwin14.0] - INSTALLATION DIRECTORY: /Users/acumendigital/.rvm/gems/ruby-2.1.5 - RUBY EXECUTABLE: /Users/acumendigital/.rvm/rubies/ruby-2.1.5/bin/ruby - EXECUTABLE DIRECTORY: /Users/acumendigital/.rvm/gems/ruby-2.1.5/bin - SPEC CACHE DIRECTORY: /Users/acumendigital/.gem/specs - SYSTEM CONFIGURATION DIRECTORY: /etc - RUBYGEMS PLATFORMS: - ruby - x86_64-darwin-14 - GEM PATHS: - /Users/acumendigital/.rvm/gems/ruby-2.1.5 - /Users/acumendigital/.rvm/gems/ruby-2.1.5@global - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :backtrace => false - :bulk_threshold => 1000 - :sources => ["https://rubygems.org/", "http://rubygems.org"] - REMOTE SOURCES: - https://rubygems.org/ - http://rubygems.org - SHELL PATH: - /Users/acumendigital/.rvm/gems/ruby-2.1.5/bin - /Users/acumendigital/.rvm/gems/ruby-2.1.5@global/bin - /Users/acumendigital/.rvm/rubies/ruby-2.1.5/bin - /usr/local/bin - /usr/bin - /bin - /user/sbin - /sbin - /user/local/bin - /usr/local/git/bin - /Users/acumendigital/.gem/ruby/1.8/bin - /opt/nginx/sbin - /Users/acumendigital/.rvm/bin 

rvm信息:

 ruby-1.9.3-p547@ums: system: uname: "Darwin Evans-MacBook-Pro.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64" system: "osx/10.9/x86_64" bash: "/bin/bash => GNU bash, version 3.2.51(1)-release (x86_64-apple-darwin13)" zsh: "/bin/zsh => zsh 5.0.2 (x86_64-apple-darwin13.0)" rvm: version: "rvm 1.26.3 (latest) by Wayne E. Seguin , Michal Papis  [https://rvm.io/]" updated: "8 minutes 33 seconds ago" path: "/Users/acumendigital/.rvm" ruby: interpreter: "ruby" version: "1.9.3p547" date: "2014-05-14" platform: "x86_64-darwin13.4.0" patchlevel: "2014-05-14 revision 45962" full_version: "ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-darwin13.4.0]" homes: gem: "/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@ums" ruby: "/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547" binaries: ruby: "/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547/bin/ruby" irb: "/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547/bin/irb" gem: "/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547/bin/gem" rake: "/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547/bin/rake" environment: PATH: "/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@ums/bin:/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@global/bin:/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547/bin:/Users/acumendigital/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/user/sbin:/sbin:/user/local/bin:/usr/local/git/bin:/Users/acumendigital/.gem/ruby/1.8/bin:/opt/nginx/sbin" GEM_HOME: "/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@ums" GEM_PATH: "/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@ums:/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@global" MY_RUBY_HOME: "/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547" IRBRC: "/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547/.irbrc" RUBYOPT: "" gemset: "ums" 

老实说,我不知道还有什么可以尝试。 任何帮助都非常感谢。

请注意,您的gem env表示您正在运行Ruby 2.1.5:

 - RUBY VERSION: 2.1.5 (2014-11-13 patchlevel 273) [x86_64-darwin14.0] 

而你的ruby -v显示1.9.3:

 ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-darwin13.4.0] 

这告诉我你的系统真的很混乱。

首先,通过运行以下命令捕获Ruby环境中当前gem的列表:

 gem list --no-version > ~/gem_list 

它将当前安装的没有版本号的gem列表存储在用户主目录的“gem_list”文件中。

接下来,我建议做一个rvm implode ,然后从shell退出并重新打开终端窗口。 跑

 grep rvm ~/.bash_profile 

并查找正在初始化RVM的行。 删除〜/ .bash_profile中的那些。

然后,在同一个文件中查找提及rbenv的行:

 grep rbenv ~/.bash_profile 

并删除它们。

然后按照http://rvm.io/rvm/install上的说明重新安装RVM。 仔细阅读说明并按照说明进行单用户安装。 一旦RVM完成安装,请阅读它输出的文本并执行有关设置〜/ .bash_profile的内容。

那时你应该可以使用以下方法安装Ruby:

 rvm install 2.1.5 

完成后:

 rvm use 2.1.5 --default 

那时RVM和你的环境应该很开心,你可以重新安装gem。 跑:

 xargs gem install --conservative < ~/gem_list 

gem应该突然消失,并重新安装你以前安装的gem。 最终它会停止,如果一切看起来都很好,你可以删除gem列表:

 rm ~/gem_list 

注意:您正在运行Mac OS X计算机,Apple会在其上预安装Ruby。 切勿使用sudo安装任何gem或尝试删除Ruby Apple安装。 他们把它放在那里以便可以运行一些代码,你可以用它来运行它,但是把它视为属于系统。 这就是为什么我们使用RVM,拥有一个我们可以放心使用的Ruby版本,而不会冒破坏默认版本的风险。

互联网上有许多教程和博客,声称告诉我们如何在我们的机器上安装RVM,但大多数已经过时,所以请忽略它们。 相反,请遵循RVM作者在其网站上所写的内容。 安装页面说:

外部教程

请注意,任何外部教程都不受支持,无论它们是否有效。 教程很棒,但我们花了大量的工时来调试安装过程。 请仅使用此站点的安装过程,因为这是唯一受支持的安装类型和方法。

所以我尝试了锡人提供的步骤,我仍然得到了seg故障。 我终于可以访问一个高级开发人员,他确定问题是我的开放ssl没有正确配置。 我解决了这个问题

 brew link --force openssl 

然后我删除并重新安装了gem和ruby。 一切都很好。 感谢所有花时间回答我的问题的人,我希望这有助于其他人。 特别感谢Tin Man花时间撰写详细的回复。

我也注意到,当我捆绑时,我正在收集

 Your bundle is complete! It was installed into ./vendor/bundle 

所以我删除了./vendor/bundle

 rm -rf ./vendor/bundle 

并重新捆绑。