18

处理已设置为使用 Capistrano 部署的现有 Rails 项目。试图确定我找出这个错误的第一步。谁能指出我需要做的正确方向?

cap aborted!
cannot load such file -- deploy
/Users/lrh/Projects/Rails/febennett.com/Capfile:1:in `load'
/Users/lrh/Projects/Rails/febennett.com/Capfile:1:in `<top (required)>'
/Users/lrh/.rvm/gems/ruby-2.0.0-p247@febennett/gems/capistrano-      
3.0.1/lib/capistrano/application.rb:22:in `load_rakefile'
/Users/lrh/.rvm/gems/ruby-2.0.0-p247@febennett/gems/capistrano-
3.0.1/lib/capistrano/application.rb:12:in `run'
/Users/lrh/.rvm/gems/ruby-2.0.0-p247@febennett/gems/capistrano-3.0.1/bin/cap:3:in `<top   
(required)>'
/Users/lrh/.rvm/gems/ruby-2.0.0-p247@febennett/bin/cap:23:in `load'
/Users/lrh/.rvm/gems/ruby-2.0.0-p247@febennett/bin/cap:23:in `<main>'
(See full trace by running task with --trace)

下面的 Capfile

load 'deploy'
# Uncomment if you are using Rails' asset pipeline
load 'deploy/assets'
load 'config/deploy' # remove this line to skip loading any of the default tasks

谢谢!希望这是足够的信息。

4

2 回答 2

38

您使用的是 Capistrano 3,但您使用的项目可能是为 Capistrano 2 设置的。版本 3 是完全重写的,需要进行大量配置更新才能工作。

假设您的项目中有正确的 Capistrano 2.x 版本Gemfile,您应该使用bundle exec cap(使用您的项目的版本)而不是仅cap使用(将使用全局安装的 3.x 版本)。

有一个可用的升级指南,虽然不是很深入。

于 2013-12-17T19:42:36.843 回答
1

您需要像使用 cap 2 而不是 cap 3 之前的项目一样移动/删除旧的 cap 文件。现在,如果您想将 cap 升级到 3,请在此之前执行以下操作。

删除以下提到的文件,或者您可以简单地将相同的文件移动到其他地方,如下所示:

mkdir old_cap
mv Capfile old_cap
mv config/deploy.rb old_cap
mv config/deploy/ old_cap # --> only for multistage setups 

现在您可以继续执行相同的命令。一切顺利 :)

于 2015-11-09T06:52:02.197 回答