【问题标题】:Deploy error in Webistrano with bundler, capistrano and require 'bundler/capistrano' recipe在 Webistrano 中使用捆绑器、capistrano 部署错误并需要 'bundler/capistrano' 配方
【发布时间】:2012-10-29 23:34:00
【问题描述】:

最近我一直在尝试将 Webistrano 从不使用 bundler 来管理应用程序 gem 的版本升级到可以使用的版本。为了部署 Rails 应用程序,我们将在配方中使用require 'bundler/capistrano' 来为应用程序和其他相关步骤(如预编译资产等)加载捆绑程序。但是,一旦将 bundler 与 Gemfile 一起使用以指定和加载适当的 gem 环境,require 'bundler/capistrano' 就会引发以下错误:

** 加载阶段配方“捆绑器”

*** 定义一个名为 `install' 的任务会影响具有该名称的现有方法

如果我从配方中排除 require,部署将继续但不使用捆绑器(没有 bundle exec 等)

在尝试使用 rvm 管理 ruby​​ 环境时,我也遇到了与 require 'rvm/capistrano' 类似的问题。

关于如何解决此问题的任何想法?

【问题讨论】:

    标签: ruby rvm capistrano bundler webistrano


    【解决方案1】:

    可能是因为您使用的是具有安装任务的 rake 0.9.x https://github.com/jimweirich/rake/blob/master/lib/rake/contrib/sys.rb#L30 尝试使用 rake 0.8.7 运行 这个问题可能与https://github.com/capistrano/capistrano/pull/90

    有关

    【讨论】:

      【解决方案2】:

      您的服务器和本地计算机上是否安装了 bundler 和 rvm-capistrano gem?我以前见过这会导致问题。

      【讨论】:

      • 不,应该吗?我在部署主机上有捆绑器。部署服务器上的 rvm-capistrano。
      • 我看到人们在本地也没有这些问题。
      【解决方案3】:

      我刚刚检查了bundler/capistrano 的代码并且我知道rvm/capistrano 的代码,唯一可以做到这一点的方法是当capistranonamespace 被覆盖/损坏并且没有给出正确的范围为 task 定义,请确保不要重新定义 namespace 或没有其他 gem/library/code 可以这样做。

      可能将 capistrano 更新到较新的版本可以修复它(这可能是 capistrano 中一些已经修复的错误)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多