2011-11-24 72 views
15

我开始使用最新版本的rails(3.1.3)开始一个新的rails应用程序。当我尝试启动服务器时,Rails崩溃。首先,我固定this bug,现在我得到这样一个ruby​​_threadptr_data_type错误

ruby-debug-base19-0.11.25/lib/ruby_debug.so: undefined symbol: ruby_threadptr_data_type 

有一个关于这个事情here讨论,但我不能让见识够了,把事情的工作。

UPDATE

我更新了版本红宝石调试

gem 'ruby-debug-base19x', '~> 0.11.30.pre4' 

,现在已转移到这个错误

linecache19-0.5.12/lib/trace_nums19.so: undefined symbol: ruby_current_thread 

回答

33

好吧,事实证明,这两种宝石,调试和linecache需要手动更新到最新版本。在我的Gemfile这些线的伎俩

gem 'linecache19', :git => 'git://github.com/mark-moseley/linecache' 
gem 'ruby-debug-base19x', '~> 0.11.30.pre4' 
gem 'ruby-debug19' 

要运行规范,你需要运行束的exec rspec的-d规范

+0

这与@Jakob_Cosoroaba的答案相同 – klaffenboeck

+2

@klaffenboeck - 是的,是的。这个人在他回答之前已经有一个星期左右的时间了。不知道他为什么复制它。 – declan

+0

不起作用。仍然有同样的问题。试过必要的,没有git和版本定义。一样。 –

2

以下线路为我工作:

gem 'linecache19' 
gem 'ruby-debug-base19x' 
gem 'ruby-debug19', :require => 'ruby-debug' 

( Hat tip to declan。他的评论对我来说不起作用,但它给了我想要添加linecache19的想法。)

+0

我尝试了其他一切,这是解决我的问题的唯一解决方案。对于那些更新到Ubuntu 12.04,红宝石将自动更新到1.9.3p0。 – Jon

0

尝试所有提示后在stackove rflow,下面结合工作对我来说

gem 'linecache19', :git => 'git://github.com/mark-moseley/linecache' 
gem 'ruby-debug-base19x', '~> 0.11.30.pre4' 
gem 'ruby-debug19' 

我关于Ruby 1.9.3-P0运行的Rails 3.1.3 RVM

当我设置:require => 'ruby-debug'服务器将无法启动。

-1

它的转贴自this

我也碰到了这一点,并找到了解决办法在Ruby 1.9.3 and ruby-debug。您需要安装尚未正式发布的ruby-debug-base19和linecache19版本。目前发布的版本的确会导致你有异常。使用this gist

#To install ruby-debug on Ubuntu ruby-1.9.3 you need to download from http://rubyforge.org/frs/?group_id=8883 

linecache19-0.5.13.gem 
ruby_core_source-0.1.5.gem 
ruby-debug19-0.11.6.gem 
ruby-debug-base19-0.11.26.gem 

#Then in your console 

export RVM_SRC=/your/path/to/ruby-1.9.3 
# Note, your source path should be something like /home/user/.rvm/src/ruby-1.9.3-p0 

gem install archive-tar-minitar 
gem install ruby_core_source-0.1.5.gem -- --with-ruby-include=/$RVM_SRC 
gem install linecache19-0.5.13.gem -- --with-ruby-include=/$RVM_SRC 
gem install ruby-debug-base19-0.11.26.gem -- --with-ruby-include=/$RVM_SRC 
gem install ruby-debug19-0.11.6.gem -- --with-ruby-include=/$RVM_SRC 

我试过了,它的工作!

这是解决我们的问题。

4

最后我发现了这个问题。 RubyMine中的调试器不使用bundle exec,因此它不使用git中的linecache19。您需要手动安装它。

解决的问题在这里找到:http://youtrack.jetbrains.com/issue/RUBY-9418?projectKey=RUBY

gem uninstall linecache19 
gem uninstall ruby-debug-base19x 
curl -OL http://rubyforge.org/frs/download.php/75414/linecache19-0.5.13.gem 
gem install linecache19-0.5.13.gem 
gem install ruby-debug-base19x –-pre 

确保卸载所有linecache19和红宝石调试base19x!

+0

完美,谢谢! – Martynas