【问题标题】:In production mode I am getting - No such file to load -- ruby-debug (LoadError)在生产模式下,我得到 - 没有要加载的文件 - ruby​​-debug (LoadError)
【发布时间】:2012-02-17 20:19:25
【问题描述】:

我使用的是 Rails 3.2.1,并且 Gemfile 中的“ruby-debug19”行已被注释掉。 当我以开发模式启动服务器时,服务器启动没有任何问题。但是,当我以生产模式启动服务器时(rails server -e production,我最终收到以下错误(请参阅下面的堆栈跟踪):

... `rescue in depend_on': No such file to load -- ruby-debug (LoadError)

我花了很多时间试图找出谁需要重新调试,但没有任何运气。除了我的 Gemfile 和堆栈之外,不确定要包括什么。我真的很感激任何帮助。

还有一条信息:我的 environment.rb 文件中的第 5 行只是调用“Application.initialize!”

宝石文件:

gem 'rails', '3.2.1'
gem 'mysql'
gem 'gravatar_image_tag', '0.1.0'
gem "devise", ">= 1.4.9"
gem "paperclip", "~> 2.0"
gem 'jquery-rails'
gem 'aws-sdk'
gem 'aws-s3', :require => 'aws/s3'
gem 'formtastic'
gem 'cancan'    
gem 'kaminari'
gem 'date_validator'
gem 'simple_form'
gem 'heroku'

gem 'pg', :group => :production

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails', "  ~> 3.2.3"
  gem 'coffee-rails', "~> 3.2.1"
  gem 'uglifier', '>= 1.0.3'
end

gem 'annotate','2.4.1.beta1', :group => :development
gem 'nifty-generators',       :group => :development

gem 'rspec-rails', '2.6.1.beta1', :group => [:development, :test]
gem 'faker', '0.3.1',             :group => [:development, :test]
gem 'rspec', '2.6',               :group => [:test, :development]
gem 'populator',                  :group => [:development, :test]

#gem 'ruby-debug19', :require => 'ruby-debug', :group => [:development, :test]

gem "factory_girl_rails", ">= 1.1.0", :group => :test
gem "cucumber-rails", ">= 1.0.2",     :group => :test
gem "pickle", ">=0.4.10",             :group => :test
gem "capybara", ">= 1.0.1",           :group => :test
gem "database_cleaner", ">= 0.6.7",   :group => :test
gem "launchy", ">= 2.0.5",            :group => :test
gem "email_spec",                     :group => :test
gem 'guard-rspec',                    :group => :test
gem "mocha",                          :group => :test

这是堆栈跟踪:

➜  taskfree git:(master) ✗ bundle exec rails server -e production
=> Booting WEBrick
=> Rails 3.2.1 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
Exiting
/usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport- 3.2.1/lib/active_support/dependencies.rb:317:in `rescue in depend_on': No such file to load -- ruby-debug (LoadError)
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport3.2.1/lib/active_support/dependencies.rb:312:in `depend_on'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:225:in `require_dependency'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/engine.rb:439:in `block (2 levels) in eager_load!'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/engine.rb:438:in `each'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/engine.rb:438:in `block in eager_load!'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/engine.rb:436:in `each'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/engine.rb:436:in `eager_load!'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/application/finisher.rb:53:in `block in <module:Finisher>'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/initializable.rb:30:in `instance_exec'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/initializable.rb:30:in `run'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/initializable.rb:55:in `block in run_initializers'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/initializable.rb:54:in `each'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/initializable.rb:54:in `run_initializers'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/application.rb:136:in `initialize!'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/railtie/configurable.rb:30:in `method_missing'
from /Users/bidhan/code/taskfree/config/environment.rb:5:in `<top (required)>'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `block in require'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:236:in `load_dependency'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
from /Users/bidhan/code/taskfree/config.ru:4:in `block in <main>'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rack-1.4.1/lib/rack/builder.rb:51:in `instance_eval'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rack-1.4.1/lib/rack/builder.rb:51:in `initialize'
from /Users/bidhan/code/taskfree/config.ru:1:in `new'
from /Users/bidhan/code/taskfree/config.ru:1:in `<main>'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rack-1.4.1/lib/rack/builder.rb:40:in `eval'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rack-1.4.1/lib/rack/builder.rb:40:in `parse_file'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rack-1.4.1/lib/rack/server.rb:200:in `app'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands/server.rb:46:in `app'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rack-1.4.1/lib/rack/server.rb:301:in `wrapped_app'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/rack-1.4.1/lib/rack/server.rb:252:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands/server.rb:70:in `start'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:55:in `block in <top (required)>'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap'
from /usr/local/rvm/gems/ruby-1.9.2-p290/gems/railties-3.2.1/lib/rails/commands.rb:50:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

这是我刚刚在开发模式下启动服务器时的输出:

➜  taskfree git:(master) ✗ bundle exec rails server              
=> Booting WEBrick
=> Rails 3.2.1 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-02-17 15:09:24] INFO  WEBrick 1.3.1
[2012-02-17 15:09:24] INFO  ruby 1.9.2 (2011-07-09) [x86_64-darwin10.5.0]
[2012-02-17 15:09:24] INFO  WEBrick::HTTPServer#start: pid=33798 port=3000

【问题讨论】:

    标签: ruby-on-rails-3


    【解决方案1】:

    您的 Gemfile.lock 可以帮助您跟踪哪个 gem 具有 ruby​​-debug 作为依赖项。打开它并搜索“ruby-debug”,它应该嵌套在依赖它的 gem 之下。

    也就是说,我确实注意到了一个可能让您感到悲伤的问题。 aws-s3 gem 和 aws-sdk gem 不兼容。它们都使用 AWS::S3 常量,一个作为模块,另一个作为类。根据需要的顺序,您会获得不同的行为。

    Paperclip 最近将 aws-s3 作为依赖项替换为 aws-sdk。您应该能够简单地从 Gemfile 中删除 aws-s3(除非您专门在回形针之外使用 aws-s3)。如果您在回形针之外依赖 aws-s3,则需要使用 aws-sdk 将这些调用替换为等效调用。

    【讨论】:

    • 我检查了 Gemfile.lock -- 没有引用 ruby​​-debug。感谢您对 aws-s3 的建议。感谢您的帮助。
    • 在初始化期间执行像 require 'ruby-debug' 这样的行会导致此问题。由于在我的代码中没有引用 ruby​​-debug,我开始认为我正在使用的其中一个 gem 可能是罪魁祸首。现在的问题是我如何轻松解决这个问题。这只是一种预感,我也可以在这里完全关闭。
    • 很棒的Bidhan,我的问题也很相似,在不知疲倦地搜索了整整N半天后帮助了我。
    • 我们也有类似的问题。我们发现这里加载的另一个gem中的routes.rb是不对的。该错误实际上与另一个宝石有关。
    猜你喜欢
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2014-01-16
    • 2011-02-23
    • 2013-12-14
    • 2011-12-19
    相关资源
    最近更新 更多