spo*_*ong 13 macos ruby-on-rails
我是Ruby on Rails的新手.
当我使用Rails创建博客教程时,我在终端中运行了以下内容:
$ rails blog
[BUG] cross-thread violation on rb_gc()
(null)
Abort trap
Run Code Online (Sandbox Code Playgroud)
如何确定此错误消息的含义以及如何解决?
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.8.7 (2010-06-23 patchlevel 299) [i686-darwin10]
- INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-10
- GEM PATHS:
- /opt/local/lib/ruby/gems/1.8
- /Users/sunpech/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://rubygems.org/", "http://gems.github.com"]
- REMOTE SOURCES:
- http://rubygems.org/
- http://gems.github.com
Run Code Online (Sandbox Code Playgroud)
UPDATE
我做了一些摆弄,我不再收到错误消息了.但我确实注意到我的环境现在正在运行Ruby的不同路径.
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.5
- RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-10
- GEM PATHS:
- /Library/Ruby/Gems/1.8
- /Users/sunpech/.gem/ruby/1.8
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- :sources => ["http://rubygems.org/", "http://gems.github.com"]
- REMOTE SOURCES:
- http://rubygems.org/
- http://gems.github.com
Run Code Online (Sandbox Code Playgroud)
这似乎意味着我在我的Mac机箱上安装了多个Ruby.一个在/ opt/local/bin /和/ usr/bin /中.我认为前者来自MacPorts安装,而后者是我的系统(可能已升级).
mmr*_*ins 10
这种情况可能发生在各种各样的宝石上,而且似乎与一个带有C扩展的gem有关,这个扩展是针对不同的ruby而不是试图加载它的那个.
https://rvm.io/support/troubleshooting/
总线错误/ Segfault
Run Code Online (Sandbox Code Playgroud)[BUG] cross-thread violation on rb_gc()
在我所看到的每一个例子中,我总是最终得到一个带有C扩展的ruby gem /库是针对不同的ruby和/或架构编译的,而不是试图加载它的那个.尝试卸载并重新安装带有C扩展名的gem,应用程序使用这些扩展来捕获此bugger.
json gem是一个常见的罪魁祸首,但是有很多其他宝石已被人们所关注.我不确定如何弄清楚究竟哪个宝石造成了问题,但是如果你正在使用rvm和gemsets,你可以随时rvm gemset empty
使用Bundler重新安装所有宝石.
问题是我的系统上有多个 ruby 安装/路径。我相信 Mac OS X Snow Leopard 预装了 ruby。我犯了一个错误,即使用 MacPorts 安装较新的版本。
我通过以下方式解决了问题:
我还在 Ruby on Rails Talk 上发布了此内容。请参阅错误:rb_gc() 上的跨线程冲突
归档时间: |
|
查看次数: |
7500 次 |
最近记录: |