web-dev-qa-db-ja.com

バンドラーがJSON gemをインストールしないのはなぜですか?

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アップグレードを反映するように.Ruby-versionファイルを変更しました。

bundle installコマンドはローカルで機能しますが、宛先サーバーにsshしてこのコマンドを実行すると、上記と同じエラーが生成されます。

gem listを実行すると、gemのリストにこれが表示されます。

...
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がインストールされているようです。なんでこんなことが起こっているの?どうすれば解決できますか?どんな助けも大歓迎です。

80
Thomas

だからこれについて半日後、質問を投稿した直後に私は答えを見つけました。 Bundler 1.5.0には、デフォルトのgemを ここで参照 として認識しないというバグがあります

解決策は、gem install bundler -v '= 1.5.1'を使用してbundler 1.5.1に更新することでした

67
Thomas
$ bundle update json
$ bundle install
67
dnvtrn

このコマンドを実行すると、すべてが正常になります

Sudo apt-get install libgmp-dev
48
Jameel Grand

macOS Sierraで、Rubyバージョンが2.4.0の場合。Rubyバージョンはjson 1.8.3と互換性がありません。

Gemfileに次の行を追加してみてください:

gem 'json', github: 'flori/json', branch: 'v1.8'

これは私のために働く!

40
Juice007

この問題を解決するには、単に次を実行します:

bundle update

バンドラーのバージョンが更新されます。次に実行します:

bundle install

あなたの問題は解決されます。解決策はよく説明されていますここ

25

私は解決策を見つけました こちら 。 jsonバージョン1.8.1とRuby 2.2.3に問題があるため、json 1.8.3バージョンをインストールしてください。

gem install json -v1.8.3
20
Ajeet Khan

試してみてください

$ Sudo gem install json -v '1.8.2'

私の場合(Ubuntu 14.04)、それは直接動作せず、これをしなければなりませんでした:

$ Sudo apt-get install Ruby-dev

そして、gemをインストールして続行できます。次の方法で修正されたもう1つの問題がありました。

$ Sudo apt-get install libsqlite3-dev

希望は助けます。

12
Lucas

すでに新しいバージョンのbundlerを使用しているため、推奨される回答が役に立たなかった場合。私のために働いた解決策を試してください。

ベンダーフォルダー内のすべてを削除します。 gemfileに行を追加します

gem 'json', '1.8.0'

次に-bundle update jsonを実行します。

これは1.8.1の問題のようですので、1.8.0に戻るとうまくいきました。

7
Adam

プロジェクトをローカル開発ボックス(OSX 10.6)で実行し、SinatraとPostgresql(activerecord経由)を使用して、rvm'd Ruby 2.1で実行しようとすると、このエラーが発生しました。私はここに答えを見つけました: https://github.com/wayneeseguin/rvm/issues/2511

私の 正確な問題 (ログエントリの最初のブロックの後):

Gemのネイティブ拡張を構築しようとするとエラーが発生します

answer

rvm再インストール2.1.0 --disable-binary

説明

OSXにはパッケージマネージャーがないため、すべてのライブラリをユーザーが手動でインストールする必要があります。これにより、バイナリを動的にリンクすることは事実上不可能になり、(擬似)静的にリンクされたバイナリに問題があることがわかります。

完全を期すために、私は最初にrvm(rvm get head)を更新するのを忘れていました。これにより、他のエラーが発生しましたが、--disable-binaryフラグが必要になりました。

7
Matthias

bundle update json。通過するのに役立ちました。

5
anti-k

gem install jsonを使用するだけでなく、bundle installを使用してjson gemをインストールしようとすると、ERROR: Failed to build gem native extension.が得られました。

    apt-get install Ruby-dev

トリックをしました

4
PetrolHead

OS Xの場合、coreutilsを持っていることを確認してください

$ brew install coreutils
$ bundle
3
comonitos

これは、Ruby 2.xとともにインストールされたデフォルトのgemを認識しないBundlerのバグのようです。最新バージョンのbundler(1.5.3)を使用しても、まだ問題が発生しました。

1つの解決策は、デフォルトのgemspecディレクトリからjson-1.8.1.gemspecを単純に削除することです。

rm ~/.rubies/Ruby-2.1.0/lib/Ruby/gems/2.1.0/specifications/default/json-1.8.1.gemspec

これを実行した後、Bundlerはgemを見つけるのに問題はないはずです。 chrubyを使用していることに注意してください。他のRubyマネージャーを使用している場合、それに応じてパスを更新する必要があります。

2
jearlu

バンドルはjson -v '1.8.1'のインストールに失敗し、Gemfile.lockを削除してバンドルを再度実行すると、この問題は解決しました。

2
davidmccoy

私はCヘッダーソリューションが不足していたXcode用にダウンロードすることでした、これが最良の方法です。

xcode-select --install

それが役に立てば幸い。

2
Haris Krajina

Jsonの最新バージョンをインストールしました。

gem install json

次に、行json(1.8.1)をGemfile.lockから削除して、

bundle install

そして、Gemfile.lockファイルは、エラーなしでjson(1.8.3)を使用します

1
PerseP

MacOS Sierraの場合:

Rails(v1.15.3)プロジェクトでbundler(v4.2)を使用すると、このエラーが発生しました。私にとっての解決策はgem uninstall bundler -v '1.15.3'gem install bundler -v '1.14.6'です。

0
Devin

私にとって、前述の回答のいくつかは、視点を理解するのに役立ちましたが、それらは私の問題を解決しませんでした。

これが私が問題を解決するためにしたことです。

  • Gemfile.lockを変更してjson(2.0.2)を更新しました(以前は1.8.
  • インストールされているバンドラーのバージョンを確認します(Bundler -vコマンド)。バージョン1.12.5をインストールしました
  • バンドラーバージョン1.11.2をインストールします(gem install bundler -v '1.11.2'を使用)
  • 次に、バンドルインストールを実行します
0
iHS

Rubyバージョンを1.9から2.2に rvm で切り替えてくれました

0
Koala7