请从 Capistrano 配方中获取此文件 (LoadError)

Posted

技术标签:

【中文标题】请从 Capistrano 配方中获取此文件 (LoadError)【英文标题】:Please require this file from within a Capistrano recipe (LoadError) 【发布时间】:2015-04-12 06:33:49 【问题描述】:

我正在使用 Capistrano 2 和 Rails 3 项目。最近我从头开始重建我的 gemset 表单,现在我在尝试运行 rails server 时收到错误“请从 Capistrano 配方 (LoadError) 中要求此文件”。

详细的错误信息:

/Users/leonidlukin/.rvm/rubies/ruby-1.9.3-p429/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /Users/leonidlukin/Sites/moscowshows/script/rails server -b 0.0.0.0 -p 3000 -e development
/Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/capistrano-2.15.5/lib/capistrano/configuration/loading.rb:18:in `instance': Please require this file from within a Capistrano recipe (LoadError)
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/helpers/base.rb:16:in `rvm_with_capistrano'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/helpers/_cset.rb:3:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/base.rb:1:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano/selector.rb:1:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:236:in `load_dependency'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/rvm-capistrano-1.5.6/lib/rvm/capistrano.rb:3:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:85:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:85:in `rescue in block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:68:in `block in require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:61:in `each'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler/runtime.rb:61:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/bundler-1.8.0/lib/bundler.rb:134:in `require'
    from /Users/leonidlukin/Sites/moscowshows/config/application.rb:13:in `<top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:53:in `require'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:53:in `block in <top (required)>'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:50:in `tap'
    from /Users/leonidlukin/.rvm/gems/ruby-1.9.3-p429@moscowshows/gems/railties-3.2.13/lib/rails/commands.rb:50:in `<top (required)>'
    from /Users/leonidlukin/Sites/moscowshows/script/rails:6:in `require'
    from /Users/leonidlukin/Sites/moscowshows/script/rails:6:in `<top (required)>'
    from -e:1:in `load'
    from -e:1:in `<main>'

Process finished with exit code 1

我应该从 Capistrano 配方中获取哪个文件?

【问题讨论】:

【参考方案1】:

问题在于 rvm-capistrano。

在 gemfile 中更正它。 要求:假

 gem  'rvm-capistrano',  require: false

这应该会有所帮助

【讨论】:

感谢您的解决方案。它就像一个魅力。但是你能解释一下发生了什么吗?提前致谢。 @huynhquancam 似乎这个问题在 bundler 1.8.0 发布后再次出现。 Bundler 无法加载 rvm-capistrano。希望它会得到修复。 失败的代码在这里github.com/bundler/bundler/blob/master/lib/bundler/… 对我不起作用。在此处发布详细问题***.com/questions/29101421/… @AmitPatel 好像你解决了你的问题。【参考方案2】:

我找到了一个更好的解决方案,而不是删除它,只需将 rvm-capistrano 移动到 capistrano 之前:

# Deploy with Capistrano
gem 'rvm-capistrano'
gem 'capistrano'
gem 'capistrano-ext'

【讨论】:

请不要对多个问题发布相同的答案。发布一个好的答案,然后投票/标记以关闭其他问题作为重复问题。如果问题不是重复的,调整您对该问题的回答。 下次我给出答案时会记住这一点。感谢您指出。【参考方案3】:

但是,奇怪的是,我也这样解决了这个问题(在我的 Gemfile 中,只是为了评论主 capistrano gem):

# Deploy with Capistrano
# gem 'capistrano', :group => :development
gem 'rvm-capistrano', :group => :development

【讨论】:

这是有道理的。尽管您必须取消注释才能进行部署。【参考方案4】:

在您的 Gemfile 中更改此项。

gem 'rvm-capistrano', require: false

这将解决问题而不会令人头疼。

【讨论】:

以上是关于请从 Capistrano 配方中获取此文件 (LoadError)的主要内容,如果未能解决你的问题,请参考以下文章

Capistrano 3 须藤任务

Capistrano 和 GitHub 私人回购 - 权限被拒绝(公钥)

错误“抱歉,我需要一个 wp-config-sample.php 文件才能使用。请从您的 WordPress 安装中重新上传此文件。”

请从L=[1,10,20,50,20,20,1]中找出重复数。

/usr/bin/env ruby​​ 没有这样的文件或目录:使用 capistrano 3、capistrano/rbenv、capistrano/bundler 和 capistrano/rail

如何在 Yocto 配方中获取 Bash 脚本