Rails 4,Capistrano 3.0.0,无法加载此类文件 - 部署

时间:2013-10-08 12:33:48

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

我刚刚运行了捆绑更新,并且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)>'

capfile

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

9 个答案:

答案 0 :(得分:39)

我必须宝石卸载capistrano并选择版本3.0.0

(即将宝石降级为2.x)

答案 1 :(得分:21)

我不得不跑 gem uninstall capistrano

然后使用更新gemfile gem 'capistrano', '~> 2.15'

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

答案 2 :(得分:18)

确保使用bundle exec(很可能你有多个gemist版本的capistrano)

bundle exec cap -T

答案 3 :(得分:8)

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

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

See also this nice posting,总结了Capistrano 2和3之间的差异。

答案 4 :(得分:4)

将相关的宝石添加到Gemfile

即。为了

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

请勿降级至2.x。

答案 5 :(得分:2)

我今天遇到了这个问题,并且上面解决了pastullo的解决方案,除了我必须运行gem卸载capistrano(作为markhorrocks回答)而不是捆绑卸载capistrano。

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

感谢分享这个,因为它为我节省了大量时间。 X

答案 6 :(得分:2)

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

bundle exec cap install STAGES=staging,production

然后从备份中重新创建您的上限文件。这将花费你5分钟的时间来完成你的主要Capistrano升级驼峰。

答案 7 :(得分:0)

我用过

bundle exec cap production deploy

而不只是cap production deploy

答案 8 :(得分:0)

在我的情况下,我已经更改了我的项目ruby版本。可能bundle也可以在这里工作。

但是我把它改成了以前的样子。

前:

rbenv local 2.4.1