rails5:Bundler could not find compatible versions for gem “actionpack”のエラーとかの対処

記事公開日:
最終更新日:

This post is also available in: English-US (英語)

Ruby on Railsのバージョンを4.2から5.0にアップグレードしようとして bundle update rails コマンドを叩いたら、以下のようなエラーが出てちょっと迷ったりしましたので、その時の対処方法のメモです。

ちなみに、railsのバージョンは5.0.0以上を既に指定しているとします。

gem 'rails', '>=5.0.0'

Bundler could not find compatible versions for gem "actionpack"
Bundler could not find compatible versions for gem "activesupport":

以下のdeviseの例のように「devise (~> 4.1.1) was resolved to 4.1.1」の場合には、ものすごく簡略すると devise (~> 4.1.1) 指定だとエラーが出て、devise (~> 4.2.0)だとエラーなく通ります。
(詳しいことはgemのバージョン指定などを調べてください)
けっこうたくさんのgemでエラーが出ると思います。

要するに、下記では各gem(deviseやdoorkeeperなど)をrails5に対応したバージョンにアップデート(Gemfileを書き換えて bundle update)すれば bundle update rails がエラーなく通るようになります。
railtiesとかactionpack、activesupportとかって何だよとか思う方は、深く調べていけば良いと思います。しかし、私的には最初から単にgemをアップデートしたら良いって教えて欲しかったなと思いました。

また、アップデートは必要ですが、必ずしも最新版は必要ではないです。railsのバージョンを5.0.0に指定しているのに、rails5.1以上のバージョンが必須のgemを入れる必要とかはないという意味です。

    devise (~> 4.1.1) was resolved to 4.1.1, which depends on
      railties (< 5.1, >= 4.1.0)

    doorkeeper (~> 3.1.0) was resolved to 3.1.0, which depends on
      railties (>= 3.2)

個別にgemをアップデートしたい場合(以下は、devise,doorkeeper)には、Gemfileを書き換えた後、以下のようなコードを叩いてアップデートします。

bundle update devise doorkeeper

About
Amelt.net,LLCの創業者で、費用対効果の高い統合webマーケティングによりビジネスパートナーとして継続的にサポート。詳しいより。ブログの更新情報TwitterLinkedIn、またRSSfeedlyにてお知らせしていますのでフォローよろしくお願い致します。