簡體   English   中英

rake gems:出於神秘原因在Rails 2應用程序中安裝失敗

[英]rake gems:install failing in rails 2 app for mystifying reasons

我正在嘗試在本地開發環境中運行Rails 2.3.12項目,但是似乎無法安裝所需的gem。 這是我正在使用的ruby / rails版本:

$ rvm list
rvm rubies
...
=> ruby-1.8.7-p371 [ i686 ]
...
$ rails -v
Rails 2.3.12

這一切似乎都是有秩序的。 但是,當我嘗試安裝所需的gem時,會收到以下響應:

$ rake _0.9.2_ gems:install --trace
** Invoke gems:install (first_time)
** Invoke gems:base (first_time)
** Execute gems:base
** Invoke environment (first_time)
** Execute environment
rake aborted!
uninitialized constant Encoding
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:469:in `load_missing_constant'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:106:in `const_missing'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:118:in `const_missing'
/Users/me/sites/myproject/config/environment.rb:2
/Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
/Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:182:in `require'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:547:in `new_constants_in'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:182:in `require'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rails-2.3.12/lib/tasks/misc.rake:4
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:205:in `call'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:200:in `each'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rails-2.3.12/lib/tasks/gems.rake:17
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:205:in `call'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:205:in `execute'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:200:in `each'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:200:in `execute'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:158:in `invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:176:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:174:in `each'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:174:in `invoke_prerequisites'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:157:in `invoke_with_call_chain'
/Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:151:in `invoke_with_call_chain'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/task.rb:144:in `invoke'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:112:in `invoke_task'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:90:in `each'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:90:in `top_level'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:84:in `top_level'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:62:in `run'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:129:in `standard_exception_handling'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/lib/rake/application.rb:59:in `run'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rake-0.9.2/bin/rake:32
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/bin/rake:19:in `load'
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/bin/rake:19
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/bin/ruby_noexec_wrapper:14
Tasks: TOP => environment

由於在跟蹤中提到了config / environment.rb,因此我也將其包括在這里:

# Be sure to restart your server when you modify this file
Encoding.default_external = Encoding::UTF_8 

# Specifies gem version of Rails to use when vendor/rails is not present
RAILS_GEM_VERSION = '2.3.12' unless defined? RAILS_GEM_VERSION

# Bootstrap the Rails environment, frameworks, and default configuration
require File.join(File.dirname(__FILE__), 'boot')

Rails::Initializer.run do |config|
  # Settings in config/environments/* take precedence over those specified here.
  # Application configuration should go into files in config/initializers
  # -- all .rb files in that directory are automatically loaded.

  # Add additional load paths for your own custom dirs
  # config.load_paths += %W( #{RAILS_ROOT}/extras )

  # Specify gems that this application depends on and have them installed with rake gems:install
  # config.gem "bj"
  # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net"
  # config.gem "sqlite3-ruby", :lib => "sqlite3"
  # config.gem "aws-s3", :lib => "aws/s3"

  # Only load the plugins named here, in the order given (default is alphabetical).
  # :all can be used as a placeholder for all plugins not explicitly named
  # config.plugins = [ :exception_notification, :ssl_requirement, :all ]

  # Skip frameworks you're not going to use. To use Rails without a database,
  # you must remove the Active Record framework.
  # config.frameworks -= [ :active_record, :active_resource, :action_mailer ]

  # Activate observers that should always be running
  # config.active_record.observers = :cacher, :garbage_collector, :forum_observer

  # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
  # Run "rake -D time" for a list of tasks for finding time zone names.
  config.time_zone = 'UTC'

  # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')]
  # config.i18n.default_locale = :de

  config.after_initialize do
    ExceptionNotification::Notifier.exception_recipients = %w(applicationerror@seattlepub.com)
  end
end

我不知道該如何進行,而我研究該問題的努力並未帶來任何幫助。 任何幫助將不勝感激。

編輯:

如果嘗試啟動服務器,則會收到類似的錯誤消息:

$ script/server
=> Booting WEBrick
=> Rails 2.3.12 application starting on http://0.0.0.0:3000
/Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:469:in `load_missing_constant': uninitialized constant Encoding (NameError)
    from /Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:106:in `const_missing'
    from /Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:118:in `const_missing'
    from /Users/me/sites/myproject/config/environment.rb:2
    from /Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
    from /Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require'
    from /Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:182:in `require'
    from /Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:547:in `new_constants_in'
    from /Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/activesupport-2.3.12/lib/active_support/dependencies.rb:182:in `require'
    from /Users/me/.rvm/gems/ruby-1.8.7-p371@mygemset/gems/rails-2.3.12/lib/commands/server.rb:84
    from /Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require'
    from /Users/me/.rvm/rubies/ruby-1.8.7-p371/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:29:in `require'
    from script/server:3

該問題與ExceptionNotification插件有關(請參見mt environment.rb文件的末尾),具有諷刺意味的是,它導致了此異常。 重新安裝插件后,該應用程序運行正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM