Ruby on rails 运行rails S时出现分段错误(无法编译nokogiri)
我已经在配置地狱里呆了两天,我尝试了几乎所有关于堆栈溢出的方法来修复它。我觉得我尝试过的一些东西可能让事情变得更糟。我使用了RVM,然后我尝试了使用rbenv,现在我又回到了使用RVM。我不确定是否有残留的rbenv导致了这一点或什么,但我按照指示将其完全移除 我当前遇到的错误如下: ruby-v:Ruby on rails 运行rails S时出现分段错误(无法编译nokogiri),ruby-on-rails,ruby,nokogiri,Ruby On Rails,Ruby,Nokogiri,我已经在配置地狱里呆了两天,我尝试了几乎所有关于堆栈溢出的方法来修复它。我觉得我尝试过的一些东西可能让事情变得更糟。我使用了RVM,然后我尝试了使用rbenv,现在我又回到了使用RVM。我不确定是否有残留的rbenv导致了这一点或什么,但我按照指示将其完全移除 我当前遇到的错误如下: ruby-v: ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-darwin13.4.0] rails-v: Rails 3.2.19 xcode选择-
ruby 1.9.3p547 (2014-05-14 revision 45962) [x86_64-darwin13.4.0]
rails-v:
Rails 3.2.19
xcode选择-p:
/Library/Developer/CommandLineTools
宝石环境:
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 <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"
ruby-1.9.3-p547@ums:
系统:
uname:“Darwin Evans-MacBook-Pro.local 13.4.0 Darwin内核版本13.4.0:Sun Aug 17 19:50:11 PDT 2014;根目录:xnu-2422.115.4~1/RELEASE_X86_64 X86_64”
系统:“osx/10.9/x86_64”
bash:“/bin/bash=>GNUBash,版本3.2.51(1)-发布(x86_64-apple-darwin13)”
zsh:“/bin/zsh=>zsh5.0.2(x86_64-apple-darwin13.0)”
rvm:
版本:“rvm 1.26.3(最新版本)作者:韦恩E.塞根,迈克尔·帕皮斯[https://rvm.io/]"
更新:“8分33秒前”
路径:“/Users/acumendigital/.rvm”
红宝石:
翻译:“ruby”
版本:“1.9.3p547”
日期:“2014-05-14”
平台:“x86_64-darwin13.4.0”
补丁级别:“2014-05-14修订版45962”
完整版本:“ruby 1.9.3p547(2014-05-14修订版45962)[x86_64-darwin13.4.0]”
家园:
gem:“/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@ums"
ruby:“/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547”
二进制文件:
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”
环境:
路径:“/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:/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_路径:“/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@ums:/Users/acumendigital/.rvm/gems/ruby-1.9.3-p547@global"
我的RUBY主页:“/Users/acumendigital/.rvm/rubies/RUBY-1.9.3-p547”
IRBRC:“/Users/acumendigital/.rvm/rubies/ruby-1.9.3-p547/.IRBRC”
鲁比奥普特:“
宝石:“嗯”
老实说,我不知道还能尝试什么。非常感谢您的帮助 注意,您的
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_list”文件中存储当前安装的没有版本号的gem列表
接下来,我建议您执行rvm内爆
,然后退出shell并重新打开终端窗口。跑
grep rvm ~/.bash_profile
并查找正在初始化RVM的行。从你的~/.bash_档案中删除这些内容
然后,在同一文件中查找提到rbenv的行:
grep rbenv ~/.bash_profile
并移除它们
然后按照处的说明重新安装RVM。仔细阅读说明并按照说明进行单用户安装。一旦RVM完成安装,请阅读它输出的文本,并按照它的说明设置~/.bash_配置文件
此时,您应该能够使用以下方法安装Ruby:
rvm install 2.1.5
完成运行后:
rvm use 2.1.5 --default
在这一点上,RVM和您的环境应该是愉快的,您可以重新安装gems。运行:
xargs gem install --conservative < ~/gem_list
注意:您运行的是MacOSX机器,苹果在上面预装了Ruby。切勿使用sudo
安装任何gems或尝试删除Ruby-Apple安装。他们把它放在那里是为了让运行一些代码成为可能,你也可以用它来运行东西,但是把它当作是属于系统的。这就是我们使用RVM的原因,它提供了一个可以安全使用的Ruby版本,而不必冒着破坏默认版本的风险
互联网上有很多教程和博客,声称要告诉我们如何在我们的机器上安装RVM,但大多数都过时了,所以忽略它们。相反,请遵循RVM作者在其网站上所写的内容。安装页面显示:
外部教程
请注意,任何外部教程都不受支持,无论它们是否有效。教程很棒,但是我们已经花费了大量的人工调试安装过程。请仅使用此站点的安装过程,因为这是唯一受支持的安装类型和方法
因此,我尝试了铁皮人提供的步骤,但我仍然受到seg故障的影响。我最终访问了一位高级开发人员,他确定问题在于我的开放式ssl配置不正确。我用计算机解决了这个问题
brew link --force openssl
然后我移除并重新安装了宝石和红宝石。现在一切都好了。谢谢大家花时间回答我的问题,我希望这对其他人有所帮助。特别感谢锡人花时间写下详细的回复
我还注意到,当我打包时
Your bundle is complete!
It was installed into ./vendor/bundle
所以我删除了./vendor/bundle with
rm -rf ./vendor/bundle
然后重新处理 您可以发布服务器日志输出吗?您可能需要安装一个系统库文件,才能使其像libxml2或其他东西一样工作。显然,您可以编译Nokogiri,因为这是正在崩溃的已编译库。你还有别的问题。你试过Rails 2.1.x吗?不要把你的错误信息放在其他网站上。当链接断开时,因为它们总是断开,你
rm -rf ./vendor/bundle