0

新しい Linux インストールで既存の Rails 2.3.8 アプリを実行する際に、興味深い問題が発生しています。これが実行されているサーバーと同じバージョンのすべての宝石をインストールしました。

最初に、初期化されていない定数 ActiveSupport::Dependencies::Mutex に関するエラーを停止するために、Rakefile を変更して次の行を含める必要がありました。

require 'thread'

サーバー上のgemのバージョンがローカルマシンにインストールしたものと一致するため、これは異常だと思います。確かに、同じコードはまったく同じように機能するはずです。明らかな何かが欠けているに違いないと感じています。

とにかく、これにパッチを適用すると、別のエラーが発生します:「undefined method name for」「RubyInline:String」

Rails 2.3.12にアップグレードするだけでこれを修正する解決策を見つけました-テスト目的で本番サーバーと同じバージョンのRailsを実行したいので、この考えには熱心ではありません。必死になって試してみましたが、エラーを別の場所に押し込んだだけです。

config/environment.rb:12 (およびその後の数行)

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

rake db:reset --trace からの出力

john@john-tosh:~/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
4

1 に答える 1

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

これが、この苛立たしい状況に陥り、Google 経由でここにたどり着いた人の助けになることを願っています。

ここで特定のバージョンの ruby​​gems をインストールするコマンドを見つけました: update ruby​​gems to specific version on mac

于 2012-08-10T23:07:19.997 に答える