使用bundler,capistrano和require'bundler / capistrano'配方在Webistrano中部署错误

时间:2012-10-29 23:34:01

标签: ruby rvm capistrano bundler webistrano

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

  

** loading stage recipe'bundler'

     

***定义名为“install”的任务会影响具有该名称的现有方法

如果我从配方中排除了require,则继续部署但不使用bundler(没有bundle exec等)。

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

有关如何解决这个问题的想法吗?

3 个答案:

答案 0 :(得分: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

有关

答案 1 :(得分:0)

您的服务器和本地计算机上是否安装了bundler和rvm-capistrano gems?我之前见过这个问题。

答案 2 :(得分:0)

我刚检查了bundler/capistrano的代码并且我知道rvm/capistrano的代码,唯一能让这种情况发生的方法是capistrano的{​​{1}}被覆盖/已破坏并且没有为namespace定义提供适当的范围,请确保您不重新定义task或没有其他namespace / gem / library那样做。

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