0

我想通过使用capstrano将Rails应用程序部署到AWS EC2,但在输入cap production deploy后,我在控制台中发现了以下错误。Rails Capstrano rvm method_missing

DEBUG [309bdf2a] Command: cd /home/ubuntu/MY_APP/releases/20161203071428 && ~/.rvm/bin/rvm [email protected] do passenger -v 

DEBUG [309bdf2a] /home/ubuntu/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/rubygems/specification.rb:2158:in `method_missing' 

DEBUG [309bdf2a] undefined method `this' for #<Gem::Specification:0x9b54b0 passenger-5.0.30> 

我认为问题是由rvmpassenger原因,但我不知道是不是许可或路径的问题。

这里是部署/ production.rb设置

set :rvm_type, :auto 
set :rvm_ruby_version, '[email protected]' 
set :passenger_rvm_ruby_versionw 

我也把下面的代码在Capfile

require 'capistrano/rvm' 
require 'capistrano/bundler' 
require 'capistrano/rails/assets' 
require 'capistrano/rails/migrations' 
require 'capistrano/puma' 
require 'capistrano/passenger' 

如果您需要更多信息,请告诉我!

这里是整个错误消息

https://gist.github.com/fifiteen82726/62cc9ce9a5c00778c2bff76e3fb59b9a

回答

1

很多搜​​索后,我发现有在宝石2.5.1版本的一些bug。

根据这一Issue,这将固定与RubyGems 2.6.3

所以,我所做的是更新我的宝石版本。

我输入以下命令。

gem install rubygems-update -v 2.6.3 
update_rubygems 
gem update --system 

然后重新运行cap production deploy。一切安好。