gem で json 2.1 と json 1.8 が競合して困った

日記サイトの tDiary を 4.2.0 から 5.0.10 にバージョンアップした。

一通りファイルたちを入れ替え bundle install したところ、色んな gem がインストールされたわけだけど、そのなかに json-2.1.0 が入ってきた。

これでサイトを動かすと、以下のようなエラー。

 

500 Internal Server Error

You have already activated json 1.8.3.1, but your Gemfile requires json 2.1.0. Since json is a default gem, you can either remove your dependency on it or try updating to a newer version of bundler that supports json as a default gem. (Gem::LoadError)

 

この環境で有効な json が 1.8.3.1 なのだけどおまえは Gemfile で json 2.1.0 を要求しているからおかしい、と。

Gemfile に そのバージョン指定を追記しましょう。

 

gem 'json', '=1.8.3.1'

 

そして反映。

 

$ bundle update json
...
...
Note: json version regressed from 2.1.0 to 1.8.3.1
Bundle updated!

 

無事設定完了、動作するようになりました。