0

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

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

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

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

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

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

4

3 回答 3

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有关

于 2012-11-21T16:11:13.913 回答
0

我刚刚检查了 of 的代码bundler/capistrano并且我知道 的代码rvm/capistrano,唯一可以做到这一点的方法是当capistrano'snamespace被覆盖/损坏并且没有为task定义提供适当的范围时,请确保您没有重新定义namespace或没有其他gem//那会那样做librarycode

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

于 2012-11-20T16:49:39.913 回答
0

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

于 2012-11-10T10:04:42.587 回答