cfコマンドがRuby on Railsのディレクトリでエラーになる


Cloud9上からIBM BluemixにRuby on Railsのappをアップロードするために、cfコマンドをインストールしたが下記のエラーになって、コマンドが使えなかった。

/usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:2158:in `method_missing': undefined method `this' for #<Gem::Specification:0x60f89c cf-5.4.7> (NoMethodError)
        from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/specification.rb:1057:in `find_active_stub_by_path'
        from /usr/local/rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:64:in `require'
        from /usr/local/rvm/gems/ruby-2.3.0/gems/cf-5.4.7/bin/cf:8:in `<top (required)>'
        from /usr/local/rvm/gems/ruby-2.3.0/bin/cf:23:in `load'
        from /usr/local/rvm/gems/ruby-2.3.0/bin/cf:23:in `<main>'
        from /usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
        from /usr/local/rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'

色々やってみると、普通のディレクトリ上ではcfコマンドが動くのに、Gemfileがあるディレクトリでは動かないように見える。
調べてみるとrubygems自体のバグのようで、アップデートすると使えるとのこと。rubygemsのアップデート手順は以下。

  • rubygemsのアップデートモジュールをインストール
> gem install rubygems-update
Fetching: rubygems-update-2.6.6.gem (100%)
Successfully installed rubygems-update-2.6.6
1 gem installed
  • rubygemsのアップデート
> update_rubygems
RubyGems 2.6.6 installed
...
...
RubyGems installed the following executables:
/usr/local/rvm/rubies/ruby-2.3.0/bin/gem

この後、cfコマンドを実行すると上手く行きました。