安装橡胶以正确启动实例创建

时间:2015-09-17 10:45:58

标签: ruby-on-rails amazon-ec2 rubber

我正在尝试使用Rubber启动Amazon EC2实例。

cap rubber:create_staging

rubber-ruby.yml反映了正在使用的版本

ruby_build_version: 20141027
ruby_version: 1.9.3-p550

然而,在cap rubber:create_staging capistrano立即中止

LoadError: cannot load such file -- rubber
/Users/you/r/rubbertest/Capfile:14:in `require'

使用capfile说明

$:.unshift "#{root}/vendor/plugins/rubber/lib/"  # line 13
require 'rubber'                                 # line 14

所以我假设橡胶宝石是必要的。编辑了gem文件(没有capistrano,该过程提前失败)

gem 'capistrano', '~> 3.1.0'
gem 'capistrano-bundler', '~> 1.1.2'
gem 'capistrano-rails', '~> 1.1.1'
gem 'capistrano-rvm'
gem 'rubber'

这个过程又向另一个失败迈进了一步:

NoMethodError: undefined method `instance' for Capistrano::Configuration:Class
/Users/you/.rvm/gems/ruby-1.9.3-p551/gems/rubber-1.15.0/lib/rubber/capistrano.rb:1:in `<top (required)>'
/Users/you/r/rubbertest/Capfile:17:in `require'

capistrano.rb文件是单行

Capistrano::Configuration.instance.load(File.join(File.dirname(__FILE__), 'recipes', 'rubber.rb'))

由capfile调用

Rubber::initialize(root, env)
require 'rubber/capistrano'   # line 17

另一个奇怪的是Capfile的最后一条指令调用

Dir['vendor/plugins/*/recipes/*.rb'].each { |plugin| load(plugin) }

并且该目录为空,这与说明一致:Rubber can be installed as a rubygem (recommended)

我以相同的行为运行了两次。

然而,这些差距(没有提到橡胶宝石,也没有capistrano,调用供应商/插件反对gemmification偏好)告诉我这里缺少一些步骤。哪里出了问题?

1 个答案:

答案 0 :(得分:0)

宝石身份似乎很重要:

#  gem 'rubber'

只会安装版本1.15.0,通过指定

gem 'rubber', '3.1.0'

然后cap rubber:config运行。 create_staging也将开始运行 note 版本是一个问题:最初发布的版本以某种方式需要单独的capistrano条目并导致以后的失败。 list of versions is here