Rails Capstrano rvm method_missing

Rails Capstrano rvm method_missing

我想使用 capstrano 将 Rails 应用程序部署到 AWS EC2,但在我键入 cap production deploy 后,我发现控制台出现以下错误。

DEBUG [309bdf2a] Command: cd /home/ubuntu/MY_APP/releases/20161203071428 && ~/.rvm/bin/rvm 2.3.1@rails5.0.0.1 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引起的问题,但我不确定是权限问题还是路径问题

这里是deploy/production.rb

中的设置
set :rvm_type, :auto
set :rvm_ruby_version, '2.3.1@rails5.0.0.1'
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

经过大量搜索,我发现 gem 版本 2.5.1 中存在一些错误。

据此Issue, this is fixed with the RubyGems 2.6.3

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

我输入了以下命令。

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

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