Rails 4,Capistrano 3.0.0,无法加载这样的文件——部署
Posted
技术标签:
【中文标题】Rails 4,Capistrano 3.0.0,无法加载这样的文件——部署【英文标题】:Rails 4, Capistrano 3.0.0, cannot load such file -- deploy 【发布时间】:2013-10-15 09:11:20 【问题描述】:我刚刚运行了 bundle update 并且 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)>'
头文件
load 'deploy'
load 'deploy/assets'
load 'config/deploy' # remove this line to skip loading any of the default tasks
【问题讨论】:
Capistrano v3 与之前的版本完全不兼容。但是在您准备好尝试之前,继续使用 v2 是完全可以的。 我怎样才能知道我需要升级哪些步骤或降级到哪个版本? Capistrano官网:capistranorb.com版本历史:rubygems.org/gems/capistrano/versions 我将 gemfile 更改为 group :development do gem 'capistrano', '~> 2.15' end 但同样的错误。 似乎无法加载任何文件。 【参考方案1】:我不得不 gem 卸载 capistrano 并选择了 3.0.0 版本
(即将 gem 降级到 2.x)
【讨论】:
谢谢。但是,在我卸载它之前,为什么一切都坏了?我什至没有使用那个版本,它只是偶然在捆绑器中。 您显然运行了捆绑更新?我现在已将我的版本修复为 2.15.5。所以在我看到有关该主题的教程之前,它不会再次更新。 我遇到了同样的问题,将其降级到 capistrano 2.+ 是解决方案 你的意思是 Capistrano 3.0 不支持资产预编译? Capistrano 3.0 中必须有一种方法来支持它【参考方案2】:我不得不跑
gem uninstall capistrano
然后更新 gemfile
gem 'capistrano', '~> 2.15'
然后运行以重新安装正确的版本
bundle update capistrano
【讨论】:
谢谢!我有多个版本的 capistrano。当我删除 1 个版本上限时开始工作。【参考方案3】:确保您使用的是 bundle exec(很可能您有多个 gem 版本的 capistrano)
即
bundle exec cap -T
【讨论】:
使用bundle exec cap production deploy:check
使其按预期通过!泰!【参考方案4】:
不要降级到 Capistrano 2,而是使用当前版本的新配置。
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
See also this nice posting,总结了 Capistrano 2 和 3 的区别。
【讨论】:
【参考方案5】:将相关宝石添加到您的Gemfile
即对于
gem 'capistrano-bundler' # for capistrano/bundler
gem 'capistrano-rails' # for capistrano/rails/*
不要为此降级到 2.x。
【讨论】:
@sixty4bit 请详细说明,或者打开一个新的 *** 问题。 已经过了几个星期,但我想我必须添加 require: false 以避免加载错误。请注意,升级指南指出:capistranorb.com/documentation/upgrading【参考方案6】:我今天遇到了这个问题,上面 Pastullo 的解决方案修复了它,只是我必须运行 gem uninstall capistrano(正如 markhorrocks 回答的那样)而不是 bundle uninstall capistrano。
我还发现这个关于 bundler 的博客非常有用:http://viget.com/extend/bundler-best-practices
感谢您分享此内容,因为它为我节省了大量时间。 x
【讨论】:
【参考方案7】:我发现解决此问题的最快方法是备份 cap 文件(Capfile、config/deploy.rb 和 config/deploy/*.rb),然后重新 capify(它不再称为“capify”):
bundle exec cap install STAGES=staging,production
然后从备份中重新创建您的 cap 文件。完成此操作将花费您 5 分钟,您将完成 Capistrano 升级的主要障碍。
【讨论】:
【参考方案8】:我用过
bundle exec cap production deploy
而不仅仅是cap production deploy
【讨论】:
【参考方案9】:就我而言,我已经更改了我的项目 ruby 版本。可能是bundle
也在这里工作。
但我把它改回原来的样子。
例如:
rbenv local 2.4.1
【讨论】:
以上是关于Rails 4,Capistrano 3.0.0,无法加载这样的文件——部署的主要内容,如果未能解决你的问题,请参考以下文章
rails 4.1 无法通过 capistrano 3 部署
ruby 使用Capistrano 3和rsync进行本地Rails 4资产预编译
Rails 3 -- Bundler/Capistrano 错误