【问题标题】:Rails 4, Capistrano 3.0.0, cannot load such file -- deployRails 4,Capistrano 3.0.0,无法加载这样的文件——部署
【发布时间】:2013-10-15 09:11:20
【问题描述】:

我刚刚运行了 bundle update 并且 capistrano 已更新到 3.0.0 但现在当我运行 cap deploy 时出现错误并且无法弄清楚如何解决这个问题。在这次更新之前,我每天都在更新我的服务器,没有问题。

cap aborted!
cannot load such file -- deploy
/home/mark/rails_apps/myapp/Capfile:1:in `load'
/home/mark/rails_apps/myapp/Capfile:1:in `<top (required)>'

头文件

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

【问题讨论】:

  • Capistrano v3 与之前的版本完全不兼容。但是在您准备好尝试之前,继续使用 v2 是完全可以的。
  • 我怎样才能知道我需要升级哪些步骤或降级到哪个版本?
  • Capistrano官网:capistranorb.com版本历史:rubygems.org/gems/capistrano/versions
  • 我将 gemfile 更改为 group :development do gem 'capistrano', '~> 2.15' end 但同样的错误。
  • 似乎无法加载任何文件。

标签: ruby-on-rails ruby-on-rails-4 capistrano


【解决方案1】:

我不得不 gem 卸载 capistrano 并选择了 3.0.0 版本

(即将 gem 降级到 2.x)

【讨论】:

  • 谢谢。但是,在我卸载它之前,为什么一切都坏了?我什至没有使用那个版本,它只是偶然在捆绑器中。
  • 您显然运行了捆绑更新?我现在已将我的版本修复为 2.15.5。所以在我看到有关该主题的教程之前,它不会再次更新。
  • 我遇到了同样的问题,将其降级到 capistrano 2.+ 是解决方案
  • 你的意思是 Capistrano 3.0 不支持资产预编译? Capistrano 3.0 中必须有一种方法来支持它
【解决方案2】:

我不得不跑 gem uninstall capistrano

然后更新 gemfile gem 'capistrano', '~&gt; 2.15'

然后运行以重新安装正确的版本 bundle update capistrano

【讨论】:

  • 谢谢!我有多个版本的 capistrano。当我删除 1 个版本上限时开始工作。
【解决方案3】:

确保您使用的是 bundle exec(很可能您有多个 gem 版本的 capistrano)

bundle exec cap -T

【讨论】:

  • 使用bundle exec cap production deploy:check 使其按预期通过!泰!
【解决方案4】:

不要降级到 Capistrano 2,而是使用当前版本的新配置。

require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"

See also this nice posting,总结了 Capistrano 2 和 3 的区别。

【讨论】:

    【解决方案5】:

    将相关宝石添加到您的Gemfile

    即对于

    gem 'capistrano-bundler' # for capistrano/bundler
    gem 'capistrano-rails' # for capistrano/rails/*
    

    不要为此降级到 2.x。

    【讨论】:

    • @sixty4bit 请详细说明,或者打开一个新的 stackoverflow 问题。
    • 已经过了几个星期,但我想我必须添加 require: false 以避免加载错误。请注意,升级指南指出:capistranorb.com/documentation/upgrading
    【解决方案6】:

    我今天遇到了这个问题,上面 Pastullo 的解决方案修复了它,只是我必须运行 gem uninstall capistrano(正如 markhorrocks 回答的那样)而不是 bundle uninstall capistrano。

    我还发现这个关于 bundler 的博客非常有用:http://viget.com/extend/bundler-best-practices

    感谢您分享此内容,因为它为我节省了大量时间。 x

    【讨论】:

      【解决方案7】:

      我发现解决此问题的最快方法是备份 cap 文件(Capfile、config/deploy.rb 和 config/deploy/*.rb),然后重新 capify(它不再称为“capify”):

      bundle exec cap install STAGES=staging,production
      

      然后从备份中重新创建您的 cap 文件。完成此操作将花费您 5 分钟,您将完成 Capistrano 升级的主要障碍。

      【讨论】:

        【解决方案8】:

        我用过

        bundle exec cap production deploy

        而不仅仅是cap production deploy

        【讨论】:

          【解决方案9】:

          就我而言,我已经更改了我的项目 ruby​​ 版本。可能是bundle 也在这里工作。

          但我把它改回原来的样子。

          例如:

          rbenv local 2.4.1
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-05-31
            • 1970-01-01
            • 2015-01-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多