webentwicklung-frage-antwort-db.com.de

Warum installiert der Bundler JSON Gem nicht?

Beim Versuch, cap production deploy Auszuführen, wird die folgende Fehlermeldung angezeigt.

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.

Es kann wichtig sein zu beachten, dass diese Bereitstellung funktioniert hat, als ich auf Ruby 2.1.0 aktualisiert habe, um einen Codierungsfehler zu entfernen. Ich habe lokal aktualisiert, was gut funktioniert hat. Ich habe rvm install 2.1.0 Ausgeführt. und rvm use 2.1.0 haben dann meine .Ruby-version - Datei geändert, um dieses Ruby Upgrade zu berücksichtigen.

Der Befehl bundle install Funktioniert lokal, erzeugt jedoch den gleichen Fehler wie oben, wenn ich auf den Zielserver ssh und diesen Befehl ausführe.

Wenn ich gem list Ausführe, kann ich das in der Liste der Edelsteine ​​sehen.

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

Wenn ich die empfohlene Lösung gem install json -v '1.8.1' Lokal und auf dem Zielserver versuche, erhalte ich die folgende Ausgabe:

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

Es scheint also, dass der Edelstein installiert ist, oder? Warum passiert das? Wie kann ich das lösen? Jede Hilfe wäre sehr dankbar.

80
Thomas

Nach einem halben Tag und fast unmittelbar nach dem Posten meiner Frage fand ich die Antwort. Bundler 1.5.0 hat einen Fehler, bei dem Standard-Edelsteine ​​nicht als hier referenziert erkannt werden

Die Lösung bestand darin, mit gem install bundler -v '= 1.5.1' Auf Bundler 1.5.1 zu aktualisieren.

67
Thomas
$ bundle update json
$ bundle install
67
dnvtrn

Führen Sie diesen Befehl aus, dann ist alles in Ordnung

Sudo apt-get install libgmp-dev
48
Jameel Grand

wenn Sie in MacOS Sierra arbeiten und Ihre Ruby Version 2.4.0 ist. Die Ruby Version ist nicht kompatibel mit json 1.8.3.

Sie können versuchen, diese Zeile in Ihre Gemfile einzufügen:

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

Das funktioniert bei mir!

40
Juice007

Um dieses Problem zu lösen, führen Sie einfach Folgendes aus:

bundle update

Es wird die Version Ihres Bundlers aktualisieren. Dann renne:

bundle install

Ihr Problem wird gelöst. Die Lösung ist gut erklärt hier.

26

Ich habe die Lösung gefunden hier . Es gibt ein Problem mit json Version 1.8.1 und Ruby 2.2.3, installieren Sie also die json 1.8.3 Version.

gem install json -v1.8.3
20
Ajeet Khan

Du solltest es versuchen

$ Sudo gem install json -v '1.8.2'

in meinem Fall (Ubuntu 14.04) funktionierte das nicht direkt und ich musste dies tun:

$ Sudo apt-get install Ruby-dev

und dann könnte ich das gem installieren und weitermachen. Hatte noch ein Problem, das behoben wurde durch:

$ Sudo apt-get install libsqlite3-dev

Hoffen hilft.

12
Lucas

Wenn die empfohlene Antwort nicht hilft, weil Sie bereits eine neuere Version von Bundler verwenden. Probieren Sie die Lösung aus, die für mich funktioniert hat.

Löschen Sie alles in Ihrem Lieferantenordner. Füge eine Zeile zu deinem Gemfile hinzu

gem 'json', '1.8.0'

Dann renne - bundle update json.

Es scheint ein Problem mit 1.8.1 zu sein, also hat die Rückkehr zu 1.8.0 den Trick für mich getan.

7
Adam

Ich bin auf diesen Fehler gestoßen, als ich versucht habe, ein Projekt mit Sinatra und Postgresql (über activerecord) auf meiner lokalen Dev-Box (OSX 10.6) zum Laufen zu bringen, auf einem rvm'd Ruby 2.1. Ich habe meine Antwort hier gefunden: https://github.com/wayneeseguin/rvm/issues/2511

Mein genaues Problem (nach dem ersten Block von Protokolleinträgen):

Ich erhalte auch eine Fehlermeldung, wenn ich versuche, native Erweiterungen für Edelsteine ​​zu erstellen

Das Antwort :

rvm neu installieren 2.1.0 - Disable-Binary

Die Erklärung :

OSX hat keinen Paketmanager, daher müssen alle Bibliotheken manuell vom Benutzer installiert werden. Dies macht es praktisch unmöglich, die Binärdatei dynamisch zu verknüpfen. Wie Sie sehen, gibt es Probleme mit der (pseudo) statisch verknüpften Binärdatei.

Der Vollständigkeit halber hatte ich zunächst vergessen, rvm (rvm get head) Zu aktualisieren, was einige andere Fehler verursachte, aber trotzdem das --disable-binary - Flag benötigte, nachdem ich dies getan hatte.

7
Matthias

bundle update json. Geholfen, durchzukommen.

5
anti-k

Als ich versuchte, das json gem mit gem install json Zu installieren, anstatt nur bundle install Zu verwenden, bekam ich ERROR: Failed to build gem native extension. Und sah nach, was ich mit gefunden hatte

    apt-get install Ruby-dev

hat den Trick gemacht

4
PetrolHead

Stellen Sie unter OS X sicher, dass Sie coreutils haben

$ brew install coreutils
$ bundle
3
comonitos

Dies scheint ein Fehler in Bundler zu sein, der die mit Ruby 2.x) installierten Standard-Gems nicht erkennt. Trotz der neuesten Version von Bundler (1.5.3) trat das Problem immer noch auf.

Eine Lösung besteht darin, einfach json-1.8.1.gemspec aus dem Standardverzeichnis gemspec zu löschen.

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

Danach sollte der Bündler kein Problem damit haben, den Edelstein zu lokalisieren. Beachten Sie, dass ich Chruby verwende. Wenn Sie einen anderen Ruby Manager verwenden, müssen Sie Ihren Pfad entsprechend aktualisieren.

2
jearlu

Bundle konnte json -v '1.8.1' nicht installieren und das Löschen meiner Gemfile.lock-Datei und das erneute Ausführen des Bundles lösten dieses Problem für mich.

2
davidmccoy

Mir fehlte C-Header-Lösung, um es für Xcode herunterzuladen, das ist der beste Weg.

xcode-select --install

Ich hoffe es hilft.

2
Haris Krajina

Ich habe die neueste Version von json installiert:

gem install json

Dann löschte die Zeile json (1.8.1) aus dem Gemfile.lock und tat a

bundle install

Und dann verwendet die Gemfile.lock-Datei json (1.8.3) ohne Fehler

1
PerseP

Für macOS Sierra:

Ich bin auf diesen Fehler gestoßen, als ich bundler (v1.15.3) in Rails (v4.2) Projekt. Die Lösung für mich ist gem uninstall bundler -v '1.15.3' und gem install bundler -v '1.14.6'.

0
Devin

Für mich waren einige der zuvor erwähnten Antworten aus Sicht des Verständnisses hilfreich, aber diese lösten mein Problem nicht.

Das habe ich also getan, um das Problem zu lösen.

  • Gemfile.lock geändert, um json (2.0.2) zu aktualisieren (Früher war es 1.8.)
  • Überprüfen Sie die installierte Bundler-Version (Bundler -v Befehl). Ich hatte Version 1.12.5 installiert
  • Installiere Bundler Version 1.11.2 (mit gem install bundler -v '1.11.2')
  • Führen Sie dann die Bundle-Installation aus
0
iHS

Switch Ruby Version von 1.9 auf 2.2 mit rvm hat den Job für mich erledigt

0
Koala7