2012-08-09 71 views
0

我有一个有趣的问题,让现有的Rails 2.3.8应用程序在新的Linux安装上运行。我已经安装了与所运行的服务器相同的所有gem版本。“Rails 2.3.8中的”RubyInline:String“的未定义方法名称应用

一开始,我不得不修改Rake文件包含以下行,停止有关未初始化的常量的ActiveSupport错误::依赖::互斥 -

require 'thread' 

我认为这是不寻常的,因为服务器上的gem版本与我在本地机器上安装的版本相匹配。当然,相同的代码应该功能相同。我觉得我必须失去一些明显的东西。

不管怎么说,在地方补丁为了这个,我得到另一个错误:“未定义的方法名称”,“了RubyInline:字符串”

我已经找到解决方案解决的简单升级到2.3.12导轨这个 - 我并不热衷于这个想法,因为我想像生产服务器上那样运行相同版本的rails来进行测试。我的确尝试过绝望,但只是把错误推到别的地方。

配置/ environment.rb中:12(和几行进线)从耙分贝

Rails::Initializer.run do |config| 
    config.gem 'hobo' 
    config.gem 'prawn' 
    config.gem 'image_science' 
    config.gem 'geokit' 
    config.gem 'redis' 

输出:复位--trace

[email protected]:~/Work/source/AndroidServer2$ rake db:reset --trace 
(in /home/graham/Work/source/AndroidServer2) 
DEPRECATION WARNING: Rake tasks in vendor/plugins/open_flash_chart/tasks, vendor/plugins/prawnto/tasks, vendor/plugins/recaptcha/tasks, and vendor/plugins/ym4r_gm/tasks are deprecated. Use lib/tasks instead. (called from /var/lib/gems/1.8/gems/rails-2.3.8/lib/tasks/rails.rb:10) 
** Invoke db:reset (first_time) 
** Invoke db:drop (first_time) 
** Invoke db:load_config (first_time) 
** Invoke rails_env (first_time) 
** Execute rails_env 
** Execute db:load_config 
** Execute db:drop 
** Invoke db:setup (first_time) 
** Invoke db:create (first_time) 
** Invoke db:load_config 
** Execute db:create 
** Invoke db:schema:load (first_time) 
** Invoke environment (first_time) 
** Execute environment 
rake aborted! 
undefined method `name' for "RubyInline":String 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in `==' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:217:in `===' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:217:in `matching_specs' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `find_all' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:410:in `each' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/specification.rb:409:in `each' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:216:in `find_all' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:216:in `matching_specs' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:238:in `to_specs' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/dependency.rb:256:in `to_spec' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems.rb:1208:in `gem' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:73:in `add_load_paths' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:301:in `add_gem_load_paths' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:301:in `each' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:301:in `add_gem_load_paths' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:132:in `process' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `send' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `run' 
/home/graham/Work/source/AndroidServer2/config/environment.rb:12 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' 
/usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require' 
/var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' 
/var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in' 
/var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' 
/var/lib/gems/1.8/gems/rails-2.3.8/lib/tasks/misc.rake:4 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain' 
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain' 
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain' 
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:607:in `invoke_prerequisites' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `each' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:604:in `invoke_prerequisites' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:596:in `invoke_with_call_chain' 
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling' 
/var/lib/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run' 
/var/lib/gems/1.8/gems/rake-0.8.7/bin/rake:31 
/usr/local/bin/rake:19:in `load' 
/usr/local/bin/rake:19 

回答

0

解决这个问题是降级的rubygems (gem命令)从安装的版本升级到1.3.5 - 与生产中安装的版本相同。

可能有更好的方法来做到这一点,但我用下面的命令:

gem install -v 1.3.5 rubygems-update 
ruby `gem env gemdir`/gems/rubygems-update-1.3.5/setup.rb 

我希望这有助于人谁发现自己在这个令人沮丧的情况,并通过谷歌在这里结束。

我在这里找到了安装rubygems特定版本的命令:updating rubygems to specific version on mac

相关问题