【问题标题】:LoadError: cannot load such file -- config/deployLoadError: 无法加载此类文件 -- config/deploy
【发布时间】:2021-05-03 14:59:09
【问题描述】:

Ubuntu 20.04、Ruby 3.0.1、rails 6.1.3.1、Capistrano 版本:3.16.0(Rake 版本:13.0.3)

运行任何“cap”命令会导致以下结果,例如:-

>> bundle exec cap install --trace
(in /)
cap aborted!
LoadError: cannot load such file -- config/deploy
Did you mean?  rbconfig/sizeof
/Capfile:4:in `load'
/Capfile:4:in `<top (required)>'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/rake_module.rb:29:in `load'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/rake_module.rb:29:in `load_rakefile'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/application.rb:703:in `raw_load_rakefile'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/application.rb:104:in `block in load_rakefile'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/application.rb:103:in `load_rakefile'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/application.rb:82:in `block in run'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/application.rb:186:in `standard_exception_handling'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/rake-13.0.3/lib/rake/application.rb:80:in `run'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/capistrano-3.16.0/lib/capistrano/application.rb:14:in `run'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/capistrano-3.16.0/bin/cap:3:in `<top (required)>'
/home/mike/.rbenv/versions/3.0.1/bin/cap:23:in `load'
/home/mike/.rbenv/versions/3.0.1/bin/cap:23:in `<top (required)>'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in `load'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:63:in `kernel_load'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/cli/exec.rb:28:in `run'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/cli.rb:494:in `exec'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/cli.rb:30:in `dispatch'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/cli.rb:24:in `start'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/exe/bundle:49:in `block in <top (required)>'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
/home/mike/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.16/exe/bundle:37:in `<top (required)>'
/home/mike/.rbenv/versions/3.0.1/bin/bundle:23:in `load'
/home/mike/.rbenv/versions/3.0.1/bin/bundle:23:in `<main>'

我尝试创建新的 Rails 应用程序,但出现了同样的错误。

尝试了许多不同的方法(降级 ruby​​、rails 等),结果相同。我认为这可能是一个权限问题,感谢您提供任何帮助。

更新 #2

是的,在应用程序的根目录中运行命令。

参见下面的代码 sn-ps。

~/WebProjects/test_site$ ls -1
app
bin
config
config.ru
db
Gemfile
Gemfile.lock
lib
log
package.json
public
Rakefile
README.md
storage
test
tmp
vendor

~/WebProjects/test_site$ bundle exec cap install

(produces the error output in the question above)

感觉很简单,但我就是想不通(经过几个小时的挠头!)。

更新 #3

~/WebProjects/test_site$ cat /Capfile
load 'deploy' if respond_to?(:namespace) # cap2 differentiator
Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }

load 'config/deploy' # remove this line to skip loading any of the default tasks

【问题讨论】:

  • 您确定您之前没有运行过该命令吗?看起来Capfile 已经生成。
  • 我之前在机器上运行过该命令,但不适用于这个项目。例如,我刚刚设置了一个新的 rails 应用程序 - 通过 gemfile 安装 Capistrano - 并再次运行该命令并获得相同的输出。
  • 附注“--trace”输出现在添加到问题中。
  • /Capfile:4 提示您可能在错误的目录中运行此命令。
  • 感谢engineersmnky - 请参阅有问题的“更新#2”(无法弄清楚如何编码格式化响应)。

标签: ruby-on-rails ruby capistrano3


【解决方案1】:

Capfile 位于导致问题的 Ubuntu 根目录 (/) 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-30
    • 2015-01-22
    • 2012-10-25
    • 2020-12-05
    • 2017-03-18
    • 2018-07-31
    • 2015-03-20
    • 2012-02-27
    相关资源
    最近更新 更多