1. ホーム
  2. ruby-on-rails

[解決済み] なぜ bundler は JSON gem をインストールしないのですか?

2023-06-07 13:18:35

質問

を実行しようとすると、次のようなエラーが発生します。 cap production deploy .

DEBUG [dc362284]    Bundler::GemNotFound: Could not find json-1.8.1.gem for installation
DEBUG [dc362284]    An error occurred while installing json (1.8.1), and Bundler cannot continue.
DEBUG [dc362284]    Make sure that `gem install json -v '1.8.1'` succeeds before bundling.

このデプロイは、エンコードエラーを取り除くためにRuby 2.1.0にアップグレードする前はうまくいっていたことに注意することが重要でしょう。 ローカルでアップグレードしたところ、うまくいきました。私は rvm install 2.1.0rvm use 2.1.0 に変更した後 .ruby-version ファイルを変更し、このRubyのアップグレードを反映させました。

bundle install コマンドはローカルでは動作しますが、接続先サーバーに ssh してこのコマンドを実行すると、同じ上記のエラーが発生します。

もし私が gem list gemsのリストで見ることができます。

...
jquery-rails (3.0.4)
json (1.8.1)
less (2.3.2)
...

推奨される解決策を試すと gem install json -v '1.8.1' ローカルと宛先サーバーで、次のような出力が得られます。

Building native extensions.  This could take a while...
Successfully installed json-1.8.1
Parsing documentation for json-1.8.1
Done installing documentation for json after 0 seconds
1 gem installed

ということで、gemはインストールされているようですね。 なぜこのようなことが起こるのでしょうか?どうすれば解決できるのでしょうか? どんな助けでも、非常に感謝されます。

どのように解決するのですか?

半日かかって、質問を投稿した直後に答えが見つかりました。 Bundler 1.5.0 にはバグがあり、デフォルトの gems を ここで参照される

解決策は、bundler 1.5.1 にアップデートすることでした。 gem install bundler -v '= 1.5.1'