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

时间:2014-11-19 19:01:11

标签: ruby-on-rails ruby 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 env:

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 info:

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 <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [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"

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

2 个答案:

答案 0 :(得分:1)

请注意,您的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和您的环境应该很开心,您可以重新安装宝石。运行:

xargs gem install --conservative < ~/gem_list

宝石应该突然消失,并重新安装你之前安装的宝石。最终它会停止,如果一切都很好,你可以使用以下方法删除宝石列表:

rm ~/gem_list

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

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

  

外部教程

     

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

答案 1 :(得分:0)

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

解决了这个问题
brew link --force openssl

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

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

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

所以我用

删除了./vendor/bundle
rm -rf ./vendor/bundle

并重新捆绑。