Ruby on rails 无法启动SOLR服务器(Ruby on Rails)
我在Rails3应用程序中使用了sunspot_rails和sunspot gems,按照安装sunspot的步骤,我无法运行我的sunspot服务器 当我进入我的目录时,运行bundler,然后运行rake sunspot:solr:start,我得到以下错误Ruby on rails 无法启动SOLR服务器(Ruby on Rails),ruby-on-rails,windows,ruby-on-rails-3,solr,cygwin,Ruby On Rails,Windows,Ruby On Rails 3,Solr,Cygwin,我在Rails3应用程序中使用了sunspot_rails和sunspot gems,按照安装sunspot的步骤,我无法运行我的sunspot服务器 当我进入我的目录时,运行bundler,然后运行rake sunspot:solr:start,我得到以下错误 Emil@Emil-PC /cygdrive/c/work/pilarhq $ rake sunspot:solr:start (in /cygdrive/c/work/pilarhq) DEPRECATION WARNING: You
Emil@Emil-PC /cygdrive/c/work/pilarhq
$ rake sunspot:solr:start
(in /cygdrive/c/work/pilarhq)
DEPRECATION WARNING: You are using the old router DSL which will be removed in R
ails 3.1. Please check how to update your routes file at: http://www.engineyard.
com/blog/2010/the-lowdown-on-routes-in-rails-3/. (called from /cygdrive/c/work/p
ilarhq/config/routes.rb:1)
2 [main] ruby 4824 C:\cygwin\bin\ruby.exe: *** fatal error - unable to rem
ap C:\cygwin\bin\cyglber-2-3-0.dll to same address as parent: 0x360000 != 0x3800
00
Stack trace:
Frame Function Args
023F9538 6102749B (023F9538, 00000000, 00000000, 00000000)
023F9828 6102749B (61177B80, 00008000, 00000000, 61179977)
023FA858 61004AFB (611A136C, 6123FF54, 00360000, 00380000)
End of stack trace
2 [main] ruby 4500 C:\cygwin\bin\ruby.exe: *** fatal error - unable to rem
ap C:\cygwin\bin\cyglber-2-3-0.dll to same address as parent: 0x360000 != 0x3E00
00
Stack trace:
Frame Function Args
023FB0F8 6102749B (023FB0F8, 00000000, 00000000, 00000000)
023FB3E8 6102749B (61177B80, 00008000, 00000000, 61179977)
023FC418 61004AFB (611A136C, 6123FF54, 00360000, 003E0000)
End of stack trace
2 [main] ruby 4612 fork: child 4824 - died waiting for dll loading, errno
11
4 [main] ruby 580 fork: child 4500 - died waiting for dll loading, errno 1
1
/usr/lib/ruby/gems/1.8/gems/sunspot-1.2.0/lib/sunspot/server.rb:42:in `fork': Re
source temporarily unavailable - fork(2) (rake aborted!Errno::EAGAIN)
Resource temporarily unavailable - fork(2) from /usr/lib/ruby/gems/1.8/gems
/sunspot-1.2.0/lib/sunspot/server.rb:42:in `start'
$
in `fork'
from /usr/lib/ruby/gems/1.8/gems/sunspot-1.2.0/lib/sunspot/server.rb:41:
in `start'
from /usr/lib/ruby/gems/1.8/gems/sunspot_rails-1.2.0/lib/sunspot/rails/s
erver.rb:10:in `start'
from /usr/lib/ruby/gems/1.8/gems/sunspot_rails-1.2.0/lib/sunspot/rails/t
asks.rb:8
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_w
ith_call_chain'
from /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_w
ith_call_chain'ygdrive/c/work/pilarhq
$ from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_
task'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_lev
el'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_lev
el'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standar
d_exception_handling'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_lev
el'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standar
d_exception_handling'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
from /usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
from /usr/bin/rake:19:in `load'
from /usr/bin/rake:19
(我正在Windows计算机上使用Cygwin…如果有帮助的话)我发现并必须执行以下操作:
rebaseal
我遇到了类似的情况(Windows7Enterprise,使用cygwin和rails),发现简单的REBASEAL方法不起作用。简言之,问题是rebaseall不一定知道所有的.dll和.so,它必须修复。解决方案是组合您自己的列表,并使用-T选项针对该列表运行REBASEAL。对我来说,最终奏效的过程是:
find/bin/lib/usr-iname'*.so'>/tmp/to_rebase.lst
find/bin/lib/usr-iname'*.dll'>/tmp/to_rebase.lst
/bin/rebasel-T/tmp/to_rebase.lst